summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--example_test.go16
-rw-r--r--parse.go5
2 files changed, 16 insertions, 5 deletions
diff --git a/example_test.go b/example_test.go
index 5272393..acfacad 100644
--- a/example_test.go
+++ b/example_test.go
@@ -496,3 +496,19 @@ func Example_allSupportedTypes() {
// output:
}
+
+func Example_envVarOnly() {
+ os.Args = split("./example")
+ _ = os.Setenv("NUM_WORKERS", "my_key")
+
+ defer os.Unsetenv("NUM_WORKERS")
+
+ var args struct {
+ AuthKey string `arg:"-,--,env:NUM_WORKERS"`
+ }
+
+ MustParse(&args)
+
+ fmt.Println(args.AuthKey)
+ // output: my_key
+}
diff --git a/parse.go b/parse.go
index be77924..e5df067 100644
--- a/parse.go
+++ b/parse.go
@@ -360,11 +360,6 @@ func cmdFromStruct(name string, dest path, t reflect.Type) (*command, error) {
case strings.HasPrefix(key, "--"):
spec.long = key[2:]
case strings.HasPrefix(key, "-"):
- if len(key) != 2 {
- errs = append(errs, fmt.Sprintf("%s.%s: short arguments must be one character only",
- t.Name(), field.Name))
- return false
- }
spec.short = key[1:]
case key == "required":
spec.required = true