Generate & Parse

These are the two commands you'll use the most. One creates chaos (scripts), the other organizes it. Here is the exhaustive list of options for both.

Generate

parseArger generate is the main entry point. It creates the script.

General Configuration

  • --set: Declare a variable at the top of the script. Repeatable.
    parseArger generate --set 'my_var="value"' --set 'dynamic="$(cat file)"'
  • --source: Source a file at the top of the script. Repeatable.
    parseArger generate --source "/path/to/lib.sh"
  • --help-message: The description shown in the generated help.
  • --help-option: Custom long flag to trigger help (default: --help).
  • --help-short-option: Custom short flag to trigger help (default: -h).
  • --use-shebang / --no-bang: Specify the shebang (default: #!/bin/bash) or remove it.
    parseArger generate --use-shebang "#!/bin/zsh"

Leftovers (Extra Arguments)

  • --leftovers: Collect all undefined arguments into an array.
  • --leftovers-name: Name of the variable for leftovers (default: leftovers). Forces --leftovers.
  • --parse-leftovers: Try to parse leftovers as key-value pairs into an associative array. Forces --leftovers.

Version Control

  • --set-version: Hardcode a version string.
  • --version-opt-name: Customize the version long flag (default: --version).
  • --version-short-option: Customize the version short flag (default: -v).
  • --version-opt / --no-version-opt: Enable or disable the version option entirely.

Verbosity & Logging

  • --verbose-level: Set the default verbosity level (default: 0).
  • --verbose-opt-name: Customize the verbose option name (default: verbose).
  • --use-verbose / --no-use-verbose: Enable or disable the verbosity parser.
  • --die-fn-name: Rename the internal die function.
  • --log-fn-name: Rename the internal log function.

Parse (The "Oops" Command)

Use parseArger parse to update an existing script. It accepts most of the same arguments as generate, plus:

>
parseArger parse ./script.sh -i \
  --opt 'new-option "I forgot this"'
  • file: The first positional argument must be the script file to parse.
  • --inplace (-i): Update the file directly instead of printing to stdout.