package main import ( "fmt" "os" ) func main() { args := os.Args[1:] isSilent := hasSilentFlag(args) if !isSilent { printVersionHeader(args) } previousStderr := os.Stderr var nullOutput *os.File if isSilent { var err error nullOutput, err = os.OpenFile(os.DevNull, os.O_WRONLY, 0) if err != nil { fmt.Fprintln(previousStderr, err) os.Exit(1) } os.Stderr = nullOutput } err := rootCmd.Execute() if nullOutput != nil { os.Stderr = previousStderr nullOutput.Close() } if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } } func hasSilentFlag(args []string) bool { for _, arg := range args { if arg == "--silent" || arg == "--silent=true" { return true } } return false }