From cc41c860556c283f5c1e1289b3ad6192d6f19924 Mon Sep 17 00:00:00 2001 From: Mauri de Souza Meneguzzo Date: Thu, 27 Jul 2023 04:34:25 -0300 Subject: [PATCH 1/4] cmd/go: missing name in failed command error Fixed the error reporting for an unknown command to preserve the name when displaying the error message. go : unknown command go asdf: unknown command Fixes: #61604 --- src/cmd/go/main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cmd/go/main.go b/src/cmd/go/main.go index 2898c68049659a..e72d4b2d354183 100644 --- a/src/cmd/go/main.go +++ b/src/cmd/go/main.go @@ -158,7 +158,8 @@ func main() { os.Exit(2) } - cmd, used := lookupCmd(args) + cmd, used := lookupCmd(args[1:]) + used++ // because of [1:] cfg.CmdName = strings.Join(args[:used], " ") if len(cmd.Commands) > 0 { if used >= len(args) { From 38c7ead7817d229e019229935aedd487bfa849d6 Mon Sep 17 00:00:00 2001 From: Mauri de Souza Meneguzzo Date: Thu, 27 Jul 2023 04:49:45 -0300 Subject: [PATCH 2/4] don't trim out the first cmd --- src/cmd/go/main.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/cmd/go/main.go b/src/cmd/go/main.go index e72d4b2d354183..78dcae1b8dc3d1 100644 --- a/src/cmd/go/main.go +++ b/src/cmd/go/main.go @@ -158,9 +158,8 @@ func main() { os.Exit(2) } - cmd, used := lookupCmd(args[1:]) - used++ // because of [1:] - cfg.CmdName = strings.Join(args[:used], " ") + cmd, used := lookupCmd(args) + cfg.CmdName = strings.Join(args[:used], " ") + args[0] if len(cmd.Commands) > 0 { if used >= len(args) { help.PrintUsage(os.Stderr, cmd) @@ -176,7 +175,11 @@ func main() { if used > 0 { helpArg += " " + strings.Join(args[:used], " ") } - fmt.Fprintf(os.Stderr, "go %s: unknown command\nRun 'go help%s' for usage.\n", cfg.CmdName, helpArg) + cmdName := cfg.CmdName + if cmdName == "" { + cmdName = args[0] + } + fmt.Fprintf(os.Stderr, "go %s: unknown command\nRun 'go help%s' for usage.\n", cmdName, helpArg) base.SetExitStatus(2) base.Exit() } From 02765a13ed6682a39655eb7f597d3bfca4ef70dd Mon Sep 17 00:00:00 2001 From: Mauri de Souza Meneguzzo Date: Thu, 27 Jul 2023 08:18:27 -0300 Subject: [PATCH 3/4] chore: remove leftover code --- src/cmd/go/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmd/go/main.go b/src/cmd/go/main.go index 78dcae1b8dc3d1..7b73642b5a21ff 100644 --- a/src/cmd/go/main.go +++ b/src/cmd/go/main.go @@ -159,7 +159,7 @@ func main() { } cmd, used := lookupCmd(args) - cfg.CmdName = strings.Join(args[:used], " ") + args[0] + cfg.CmdName = strings.Join(args[:used], " ") if len(cmd.Commands) > 0 { if used >= len(args) { help.PrintUsage(os.Stderr, cmd) From 5d2889c60ceb3f43bb63b6641ecbcca08b7cd365 Mon Sep 17 00:00:00 2001 From: Mauri de Souza Meneguzzo Date: Wed, 2 Aug 2023 10:44:46 -0300 Subject: [PATCH 4/4] add test to testdata --- src/cmd/go/testdata/script/go_badcmd.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 src/cmd/go/testdata/script/go_badcmd.txt diff --git a/src/cmd/go/testdata/script/go_badcmd.txt b/src/cmd/go/testdata/script/go_badcmd.txt new file mode 100644 index 00000000000000..661375adc66a27 --- /dev/null +++ b/src/cmd/go/testdata/script/go_badcmd.txt @@ -0,0 +1,2 @@ +! go asdf +stderr '^go asdf: unknown command'