diff options
-rw-r--r-- | cli_args.go | 20 | ||||
-rw-r--r-- | tests/normal/cli_test.go | 1 |
2 files changed, 15 insertions, 6 deletions
diff --git a/cli_args.go b/cli_args.go index ef1ca09..036de9b 100644 --- a/cli_args.go +++ b/cli_args.go @@ -61,6 +61,10 @@ func prefixOArgs(osArgs []string) []string { if o == "" { continue } + if o == "o" || o == "-o" { + tlog.Fatal.Printf("You can't pass \"-o\" to \"-o\"") + os.Exit(ErrExitUsage) + } newArgs = append(newArgs, "-"+o) } // Add other arguments @@ -111,19 +115,23 @@ func parseCliOpts() (args argContainer) { flagSet.IntVar(&args.scryptn, "scryptn", configfile.ScryptDefaultLogN, "scrypt cost parameter logN. "+ "Setting this to a lower value speeds up mounting but makes the password susceptible to brute-force attacks") // Ignored otions - var ignoredBool bool + var dummyBool bool ignoreText := "(ignored for compatability)" - flagSet.BoolVar(&ignoredBool, "rw", false, ignoreText) - flagSet.BoolVar(&ignoredBool, "nosuid", false, ignoreText) - flagSet.BoolVar(&ignoredBool, "nodev", false, ignoreText) + flagSet.BoolVar(&dummyBool, "rw", false, ignoreText) + flagSet.BoolVar(&dummyBool, "nosuid", false, ignoreText) + flagSet.BoolVar(&dummyBool, "nodev", false, ignoreText) + var dummyString string + flagSet.StringVar(&dummyString, "o", "", "For compatability, all options can be also passed as a comma-separated list to -o.") // Actual parsing err = flagSet.Parse(os.Args[1:]) + if err == flag.ErrHelp { + os.Exit(0) + } if err != nil { tlog.Warn.Printf("You passed: %s", prettyArgs()) tlog.Fatal.Printf("%v", err) - os.Exit(2) + os.Exit(ErrExitUsage) } - // "-openssl" needs some post-processing if opensslAuto == "auto" { args.openssl = prefer_openssl.PreferOpenSSL() diff --git a/tests/normal/cli_test.go b/tests/normal/cli_test.go index bbb45ae..18c0bd9 100644 --- a/tests/normal/cli_test.go +++ b/tests/normal/cli_test.go @@ -178,6 +178,7 @@ func TestShadows(t *testing.T) { t.Fatal(err) } // This should work + // (note that MountOrFatal creates "mnt" again) test_helpers.MountOrFatal(t, cipher, mnt, "-extpass=echo test") test_helpers.UnmountPanic(mnt) cipher2 := mnt + "/cipher" |