set exit status

This commit is contained in:
chrislu
2025-03-17 23:13:25 -07:00
parent 75ef324533
commit 7244a3d047

View File

@@ -98,12 +98,15 @@ func main() {
cmd.Flag.Usage()
fmt.Fprintf(os.Stderr, "Default Parameters:\n")
cmd.Flag.PrintDefaults()
// Command execution failed - general error
setExitStatus(1)
}
exit()
return
}
}
// Unknown command - syntax error
fmt.Fprintf(os.Stderr, "weed: unknown subcommand %q\nRun 'weed help' for usage.\n", args[0])
setExitStatus(2)
exit()
@@ -155,19 +158,23 @@ func usage() {
printUsage(os.Stderr)
fmt.Fprintf(os.Stderr, "For Logging, use \"weed [logging_options] [command]\". The logging options are:\n")
flag.PrintDefaults()
os.Exit(2)
// Invalid command line usage - syntax error
setExitStatus(2)
exit()
}
// help implements the 'help' command.
func help(args []string) {
if len(args) == 0 {
printUsage(os.Stdout)
// not exit 2: succeeded at 'weed help'.
// Success - help displayed correctly
return
}
if len(args) != 1 {
fmt.Fprintf(os.Stderr, "usage: weed help command\n\nToo many arguments given.\n")
os.Exit(2) // failed at 'weed help'
// Invalid help usage - syntax error
setExitStatus(2)
exit()
}
arg := args[0]
@@ -175,13 +182,15 @@ func help(args []string) {
for _, cmd := range commands {
if cmd.Name() == arg {
tmpl(os.Stdout, helpTemplate, cmd)
// not exit 2: succeeded at 'weed help cmd'.
// Success - help for specific command displayed correctly
return
}
}
fmt.Fprintf(os.Stderr, "Unknown help topic %#q. Run 'weed help'.\n", arg)
os.Exit(2) // failed at 'weed help cmd'
// Unknown help topic - syntax error
setExitStatus(2)
exit()
}
var atexitFuncs []func()