Skip to content

Commit 4a376d5

Browse files
committed
support the --help flag
1 parent 8bcda6c commit 4a376d5

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

src/cmd/go/main.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,12 +310,33 @@ func invoke(cmd *base.Command, args []string) {
310310
}
311311
}
312312

313-
cmd.Flag.Usage = func() { cmd.Usage() }
313+
// Add --help flag support to all commands
314+
var helpFlag bool
315+
if !cmd.CustomFlags {
316+
cmd.Flag.BoolVar(&helpFlag, "help", false, "show help")
317+
}
318+
319+
cmd.Flag.Usage = func() {
320+
if helpFlag {
321+
// Show full help like "go help <command>"
322+
help.Help(os.Stdout, strings.Fields(cmd.LongName()))
323+
base.Exit()
324+
} else {
325+
cmd.Usage()
326+
}
327+
}
314328
if cmd.CustomFlags {
315329
args = args[1:]
316330
} else {
317331
base.SetFromGOFLAGS(&cmd.Flag)
318332
cmd.Flag.Parse(args[1:])
333+
334+
// Check if --help flag was set and show full help
335+
if helpFlag {
336+
help.Help(os.Stdout, strings.Fields(cmd.LongName()))
337+
base.Exit()
338+
}
339+
319340
flagCounterPrefix := "go/" + strings.ReplaceAll(cfg.CmdName, " ", "-") + "/flag"
320341
counter.CountFlags(flagCounterPrefix+":", cmd.Flag)
321342
counter.CountFlagValue(flagCounterPrefix+"/", cmd.Flag, "buildmode")

0 commit comments

Comments
 (0)