Next step might actually be the TUI! Or maybe the raw proxy, it would be nice to be able to just run the proxy.
34 lines
629 B
Go
34 lines
629 B
Go
package app
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"termtap.dev/internal/model"
|
|
"termtap.dev/internal/proxy"
|
|
)
|
|
|
|
func StartProxy(addr string, ch chan<- model.Message) {
|
|
ps, err := proxy.NewProxyServer(addr, ch)
|
|
if err != nil {
|
|
ch <- model.Message{
|
|
Type: model.MessageTypeFatal,
|
|
Body: fmt.Sprintf("%q", err),
|
|
}
|
|
return
|
|
}
|
|
defer proxy.Destory(ps, ch)
|
|
|
|
ch <- model.Message{
|
|
Type: model.MessageTypeProxyStarting,
|
|
Body: fmt.Sprintf("proxy server started on %s", addr),
|
|
}
|
|
|
|
if err := ps.Server.Serve(*ps.Listener); err != nil {
|
|
ch <- model.Message{
|
|
Type: model.MessageTypeFatal,
|
|
Body: fmt.Sprintf("%q", err),
|
|
}
|
|
return
|
|
}
|
|
}
|