Arguments, Options & Flags
The holy trinity of CLI inputs. Here is the complete reference for how to define them. Generated variables follow the pattern $_arg_name. Hyphens are replaced by underscores.
Positional Arguments (--pos)
Arguments that depend on their position. script.sh arg1 arg2. Usage: --pos 'arg-name "description" [options]'
Validation & Completion
- --one-of: Restrict values to a specific list. Repeatable.
parseArger generate --pos 'my-arg "description" --one-of value1 --one-of value2' - --complete: Use Completely built-ins for completion (file, directory, user, etc.).
parseArger generate --pos 'filename "file path" --complete file' - --complete-custom: Custom dynamic suggestions using a command or script.
parseArger generate --pos 'arg "desc" --complete-custom "$(echo "val1 val2")"'
Subcommands
Turn an argument into a dispatcher for subcommands.
- --subcommand-directory: Automatically populate
--one-ofwith scripts found in the specified directory. Forces--subcommand.parseArger generate --pos 'cmd "subcommand" --subcommand-directory bin' - --subcommand-variable: Change the variable name for the subcommand (default:
__subcommand). Forces--subcommand.parseArger generate --pos 'arg "desc" --subcommand-variable notAsubCommand' - --subcommand: Mark this argument as a subcommand.
parseArger generate --pos 'arg "desc" --subcommand' - --subcommand-run: Run the subcommand immediately before handing control back (or exiting). Forces
--subcommand.parseArger generate --pos 'arg "desc" --subcommand-run' - --subcommand-use-leftovers: Pass leftover arguments to the subcommand. Forces
--subcommand.parseArger generate --pos 'arg "desc" --subcommand-use-leftovers'
Options (--opt)
Named arguments that take a value. --output file.txt. Usage: --opt 'arg-name "description" [options]'
Repetition
- --repeat: Allow multiple values. The variable becomes an array.
parseArger generate --opt 'header "headers" --repeat' - --repeat-min: Enforce a minimum number of repetitions. Forces
--repeat.parseArger generate --opt 'item "items" --repeat-min 1' - --repeat-max: Enforce a maximum number of repetitions. Forces
--repeat.parseArger generate --opt 'item "items" --repeat-max 10'
Aliases & Shortcuts
- --short: Single letter shortcut.
parseArger generate --opt 'output "output file" --short o' - --alias: Full word synonyms. Repeatable.
parseArger generate --opt 'user "username" --alias login --alias u'
Values & Defaults
- --default-value: Value to use if not provided.
parseArger generate --opt 'mode "run mode" --default-value "production"' - --empty: Allow the option to be used without a value (acts like a flag in that case).
parseArger generate --opt 'optional-val "val" --empty' - --empty-value: Specific value to use when the option is present but empty (requires
--empty).parseArger generate --opt 'optional-val "val" --empty --empty-value "is-present"' - --one-of: Restrict values to a list. Repeatable.
- --complete: Bash built-in completion.
- --complete-custom: Custom completion.
Flags (--flag)
Booleans. True or False. On or Off. --verbose.
Configuration
- --short: Single letter shortcut (e.g.,
-v). - --on: Default to true (flag turns it off).
parseArger generate --flag 'enable "enabled by default" --on' - --no-name: Custom name for the negation (e.g.,
--dont-do-that).parseArger generate --flag 'do-it "do it" --no-name dont-do-it' - --alias: Alias for the flag. Repeatable.
parseArger generate --flag 'verbose "verbose" --alias loud' - --no-alias: Alias for the flag negation. Repeatable.
parseArger generate --flag 'verbose "verbose" --no-alias quiet --no-alias silent'