main: more useful error message on unknown flag
This commit is contained in:
parent
b70d2ffd94
commit
9f0793ab0f
18
cli_args.go
18
cli_args.go
@ -2,6 +2,7 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@ -57,7 +58,7 @@ func parseCliOpts() (args argContainer) {
|
|||||||
var err error
|
var err error
|
||||||
var opensslAuto string
|
var opensslAuto string
|
||||||
|
|
||||||
flagSet = flag.NewFlagSet(tlog.ProgramName, flag.ExitOnError)
|
flagSet = flag.NewFlagSet(tlog.ProgramName, flag.ContinueOnError)
|
||||||
flagSet.Usage = usageText
|
flagSet.Usage = usageText
|
||||||
flagSet.BoolVar(&args.debug, "d", false, "")
|
flagSet.BoolVar(&args.debug, "d", false, "")
|
||||||
flagSet.BoolVar(&args.debug, "debug", false, "Enable debug output")
|
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, "nosuid", false, ignoreText)
|
||||||
flagSet.BoolVar(&ignoredBool, "nodev", false, ignoreText)
|
flagSet.BoolVar(&ignoredBool, "nodev", false, ignoreText)
|
||||||
// Actual parsing
|
// 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
|
// "-openssl" needs some post-processing
|
||||||
if opensslAuto == "auto" {
|
if opensslAuto == "auto" {
|
||||||
@ -117,3 +123,11 @@ func parseCliOpts() (args argContainer) {
|
|||||||
}
|
}
|
||||||
return args
|
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
|
||||||
|
}
|
||||||
|
4
main.go
4
main.go
@ -216,9 +216,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
// Default operation: mount.
|
// Default operation: mount.
|
||||||
if flagSet.NArg() != 2 {
|
if flagSet.NArg() != 2 {
|
||||||
prettyArgs := fmt.Sprintf("%q", os.Args[1:])
|
prettyArgs := prettyArgs()
|
||||||
// Get rid of "[" and "]"
|
|
||||||
prettyArgs = prettyArgs[1 : len(prettyArgs)-1]
|
|
||||||
tlog.Info.Printf("Wrong number of arguments (have %d, want 2). You passed: %s",
|
tlog.Info.Printf("Wrong number of arguments (have %d, want 2). You passed: %s",
|
||||||
flagSet.NArg(), prettyArgs)
|
flagSet.NArg(), prettyArgs)
|
||||||
tlog.Fatal.Printf("Usage: %s [OPTIONS] CIPHERDIR MOUNTPOINT [-o COMMA-SEPARATED-OPTIONS]", tlog.ProgramName)
|
tlog.Fatal.Printf("Usage: %s [OPTIONS] CIPHERDIR MOUNTPOINT [-o COMMA-SEPARATED-OPTIONS]", tlog.ProgramName)
|
||||||
|
Loading…
Reference in New Issue
Block a user