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 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 { if port == 0 {
return return nil
} }
listener, err := net.Listen("tcp", fmt.Sprintf(":%d", port)) listener, err := net.Listen("tcp", fmt.Sprintf(":%d", port))
if err != nil { if err != nil {
return return fmt.Errorf("port not available: %d", port)
} }
go func() { go func() {
@@ -41,6 +41,8 @@ func startHttpServer(port int, channel chan []*action) {
} }
listener.Close() listener.Close()
}() }()
return nil
} }
// Here we are writing a simplistic HTTP server without using net/http // 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) t.separator, t.separatorLen = t.ansiLabelPrinter(bar, &tui.ColSeparator, true)
} }
if err := startHttpServer(t.listenPort, t.serverChan); err != nil {
errorExit(err.Error())
}
return &t return &t
} }
@@ -2500,7 +2504,6 @@ func (t *Terminal) Loop() {
looping := true looping := true
_, startEvent := t.keymap[tui.Start.AsEvent()] _, startEvent := t.keymap[tui.Start.AsEvent()]
startHttpServer(t.listenPort, t.serverChan)
eventChan := make(chan tui.Event) eventChan := make(chan tui.Event)
needBarrier := true needBarrier := true
barrier := make(chan bool) barrier := make(chan bool)