mirror of https://github.com/golang/go.git
cmd/go/internal/doc: ignore SIGINT and SIGQUIT
Just like we do in cmd/doc when we start pkgsite, ignore SIGINT (and SIGQUIT on unix) when we start cmd/doc so that it's handled by cmd/doc (if pkgsite is not started, and before it is started) or pkgsite, if it is started. Also exit with the exit status of the command, rather than using base.Errorf so that we don't print an extra error message to the terminal. For #68106 Change-Id: If968e88b95031761432d13dc47c5febe3391945d Reviewed-on: https://go-review.googlesource.com/c/go/+/675076 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Matloob <matloob@google.com> Reviewed-by: Jonathan Amsterdam <jba@google.com> Auto-Submit: Michael Matloob <matloob@google.com>
This commit is contained in:
parent
b6e251b264
commit
50484d3b4e
|
|
@ -191,20 +191,28 @@ func GetExitStatus() int {
|
|||
// connected to the go command's own stdout and stderr.
|
||||
// If the command fails, Run reports the error using Errorf.
|
||||
func Run(cmdargs ...any) {
|
||||
if err := RunErr(cmdargs...); err != nil {
|
||||
Errorf("%v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Run runs the command, with stdout and stderr
|
||||
// connected to the go command's own stdout and stderr.
|
||||
// If the command fails, RunErr returns the error, which
|
||||
// may be an *exec.ExitError.
|
||||
func RunErr(cmdargs ...any) error {
|
||||
cmdline := str.StringList(cmdargs...)
|
||||
if cfg.BuildN || cfg.BuildX {
|
||||
fmt.Printf("%s\n", strings.Join(cmdline, " "))
|
||||
if cfg.BuildN {
|
||||
return
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
cmd := exec.Command(cmdline[0], cmdline[1:]...)
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
if err := cmd.Run(); err != nil {
|
||||
Errorf("%v", err)
|
||||
}
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
// RunStdin is like run but connects Stdin. It retries if it encounters an ETXTBSY.
|
||||
|
|
|
|||
|
|
@ -9,6 +9,9 @@ import (
|
|||
"cmd/go/internal/base"
|
||||
"cmd/go/internal/cfg"
|
||||
"context"
|
||||
"errors"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
|
|
@ -131,5 +134,13 @@ Flags:
|
|||
}
|
||||
|
||||
func runDoc(ctx context.Context, cmd *base.Command, args []string) {
|
||||
base.Run(cfg.BuildToolexec, filepath.Join(cfg.GOROOTbin, "go"), "tool", "doc", args)
|
||||
base.StartSigHandlers()
|
||||
err := base.RunErr(cfg.BuildToolexec, filepath.Join(cfg.GOROOTbin, "go"), "tool", "doc", args)
|
||||
if err != nil {
|
||||
var ee *exec.ExitError
|
||||
if errors.As(err, &ee) {
|
||||
os.Exit(ee.ExitCode())
|
||||
}
|
||||
base.Error(err)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue