Abort fzf if --listen port is unavailable

This commit is contained in:
Junegunn Choi
2022-12-21 13:02:25 +09:00
parent 6d14573fd0
commit fd1f7665a7
2 changed files with 9 additions and 4 deletions

View File

@@ -16,14 +16,14 @@ const (
httpBadRequest = "HTTP/1.1 400 Bad Request" + crlf
)
func startHttpServer(port int, channel chan []*action) {
func startHttpServer(port int, channel chan []*action) error {
if port == 0 {
return
return nil
}
listener, err := net.Listen("tcp", fmt.Sprintf(":%d", port))
if err != nil {
return
return fmt.Errorf("port not available: %d", port)
}
go func() {
@@ -41,6 +41,8 @@ func startHttpServer(port int, channel chan []*action) {
}
listener.Close()
}()
return nil
}
// Here we are writing a simplistic HTTP server without using net/http

View File

@@ -621,6 +621,10 @@ func NewTerminal(opts *Options, eventBox *util.EventBox) *Terminal {
t.separator, t.separatorLen = t.ansiLabelPrinter(bar, &tui.ColSeparator, true)
}
if err := startHttpServer(t.listenPort, t.serverChan); err != nil {
errorExit(err.Error())
}
return &t
}
@@ -2500,7 +2504,6 @@ func (t *Terminal) Loop() {
looping := true
_, startEvent := t.keymap[tui.Start.AsEvent()]
startHttpServer(t.listenPort, t.serverChan)
eventChan := make(chan tui.Event)
needBarrier := true
barrier := make(chan bool)