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
No known key found for this signature in database
GPG Key ID: 254BC280FEF9C627
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)