diff options
Diffstat (limited to 'cli_args.go')
-rw-r--r-- | cli_args.go | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/cli_args.go b/cli_args.go index 2d5ad7e..9ba5496 100644 --- a/cli_args.go +++ b/cli_args.go @@ -2,6 +2,7 @@ package main import ( "flag" + "fmt" "os" "strconv" "strings" @@ -57,7 +58,7 @@ func parseCliOpts() (args argContainer) { var err error var opensslAuto string - flagSet = flag.NewFlagSet(tlog.ProgramName, flag.ExitOnError) + flagSet = flag.NewFlagSet(tlog.ProgramName, flag.ContinueOnError) flagSet.Usage = usageText flagSet.BoolVar(&args.debug, "d", false, "") flagSet.BoolVar(&args.debug, "debug", false, "Enable debug output") @@ -99,7 +100,12 @@ func parseCliOpts() (args argContainer) { flagSet.BoolVar(&ignoredBool, "nosuid", false, ignoreText) flagSet.BoolVar(&ignoredBool, "nodev", false, ignoreText) // Actual parsing - flagSet.Parse(os.Args[1:]) + err = flagSet.Parse(os.Args[1:]) + if err != nil { + tlog.Warn.Printf("You passed: %s", prettyArgs()) + tlog.Fatal.Printf("%v", err) + os.Exit(2) + } // "-openssl" needs some post-processing if opensslAuto == "auto" { @@ -117,3 +123,11 @@ func parseCliOpts() (args argContainer) { } return args } + +// prettyArgs pretty-prints the command-line arguments. +func prettyArgs() string { + pa := fmt.Sprintf("%q", os.Args[1:]) + // Get rid of "[" and "]" + pa = pa[1 : len(pa)-1] + return pa +} |