fix: do not listen from port for stdio (#719)

Fix #711
This commit is contained in:
Yuan
2025-06-17 11:35:04 -07:00
committed by GitHub
parent 4055b0c356
commit d51dbc759b

View File

@@ -352,30 +352,33 @@ func run(cmd *Command) error {
return errMsg
}
err = s.Listen(ctx)
if err != nil {
errMsg := fmt.Errorf("toolbox failed to start listener: %w", err)
cmd.logger.ErrorContext(ctx, errMsg.Error())
return errMsg
}
cmd.logger.InfoContext(ctx, "Server ready to serve!")
// run server in background
srvErr := make(chan error)
go func() {
defer close(srvErr)
if cmd.cfg.Stdio {
if cmd.cfg.Stdio {
go func() {
defer close(srvErr)
err = s.ServeStdio(ctx, cmd.inStream, cmd.outStream)
if err != nil {
srvErr <- err
}
} else {
}()
} else {
err = s.Listen(ctx)
if err != nil {
errMsg := fmt.Errorf("toolbox failed to start listener: %w", err)
cmd.logger.ErrorContext(ctx, errMsg.Error())
return errMsg
}
cmd.logger.InfoContext(ctx, "Server ready to serve!")
go func() {
defer close(srvErr)
err = s.Serve(ctx)
if err != nil {
srvErr <- err
}
}
}()
}()
}
// wait for either the server to error out or the command's context to be canceled
select {