diff options
| author | Jakob Unterwurzacher | 2018-06-08 00:03:23 +0200 | 
|---|---|---|
| committer | Jakob Unterwurzacher | 2018-06-08 00:03:23 +0200 | 
| commit | 5ad26495fc86527bbfe75ac6b46528d49a373676 (patch) | |
| tree | bddb2fc397abd03e1d26ef710cfb87eb6e9091d1 | |
| parent | fb772da6975eec186161fb00ededc2aef43f9eb9 (diff) | |
main: cut down "flag provided but not defined" error message
Don't dump the help text on the unsuspecting user, but
give a short error message:
  $ gocryptfs -foobar
  flag provided but not defined: -foobar
  Invalid command line: gocryptfs -foobar. Try 'gocryptfs -help'.
For comparison: This is what cp does:
  $ cp --foo
  cp: unrecognized option '--foo'
  Try 'cp --help' for more information.
And this what we used to do:
  $ gocryptfs -foobar
  flag provided but not defined: -foobar
  gocryptfs v1.4.4-45-gfb772da; go-fuse v20170619-35-gb16719c; 2018-06-08 go1.10.2
  Usage: gocryptfs -init|-passwd|-info [OPTIONS] CIPHERDIR
    or   gocryptfs [OPTIONS] CIPHERDIR MOUNTPOINT
  Common Options (use -hh to show all):
    -aessiv            Use AES-SIV encryption (with -init)
    -allow_other       Allow other users to access the mount
    -config            Custom path to config file
    -ctlsock           Create control socket at location
    -extpass           Call external program to prompt for the password
    -fg                Stay in the foreground
    -fusedebug         Debug FUSE calls
    -h, -help          This short help text
    -hh                Long help text with all options
    -init              Initialize encrypted directory
    -info              Display information about encrypted directory
    -masterkey         Mount with explicit master key instead of password
    -nonempty          Allow mounting over non-empty directory
    -nosyslog          Do not redirect log messages to syslog
    -passfile          Read password from file
    -passwd            Change password
    -plaintextnames    Do not encrypt file names (with -init)
    -q, -quiet         Silence informational messages
    -reverse           Enable reverse mode
    -ro                Mount read-only
    -speed             Run crypto speed test
    -version           Print version information
    --                 Stop option parsing
  You passed: "-foobar"
  flag provided but not defined: -foobar
| -rw-r--r-- | cli_args.go | 8 | 
1 files changed, 4 insertions, 4 deletions
| diff --git a/cli_args.go b/cli_args.go index 76876d6..08b3186 100644 --- a/cli_args.go +++ b/cli_args.go @@ -103,7 +103,7 @@ func parseCliOpts() (args argContainer) {  	}  	flagSet = flag.NewFlagSet(tlog.ProgramName, flag.ContinueOnError) -	flagSet.Usage = helpShort +	flagSet.Usage = func() {}  	flagSet.BoolVar(&args.debug, "d", false, "")  	flagSet.BoolVar(&args.debug, "debug", false, "Enable debug output")  	flagSet.BoolVar(&args.fusedebug, "fusedebug", false, "Enable fuse library debug output") @@ -169,11 +169,11 @@ func parseCliOpts() (args argContainer) {  	// Actual parsing  	err = flagSet.Parse(os.Args[1:])  	if err == flag.ErrHelp { +		helpShort()  		os.Exit(0)  	}  	if err != nil { -		tlog.Warn.Printf("You passed: %s", prettyArgs()) -		tlog.Fatal.Printf("%v", err) +		tlog.Fatal.Printf("Invalid command line: %s. Try '%s -help'.", prettyArgs(), tlog.ProgramName)  		os.Exit(exitcodes.Usage)  	}  	// "-openssl" needs some post-processing @@ -225,7 +225,7 @@ func parseCliOpts() (args argContainer) {  // prettyArgs pretty-prints the command-line arguments.  func prettyArgs() string { -	pa := fmt.Sprintf("%q", os.Args[1:]) +	pa := fmt.Sprintf("%v", os.Args)  	// Get rid of "[" and "]"  	pa = pa[1 : len(pa)-1]  	return pa | 
