Core functionality for parseArger. Use this skill to GENERATE new bash argument parsers or PARSE/MODIFY existing ones. Handles definition of positional arguments, flags, and options.
Before running any command, decide:
Does the target file exist?
parse (modify EXISTING parseArger script)generate (create NEW script)Check parseArger availability:
parseArger if in PATH./parseArger (from project root)which parseArger → if found, use parseArger./parseArger (in project root)All parseArger scripts contain generated code between:
# @parseArger-parsing# @parseArger-parsing-endDO NOT manually edit code between these markers.
To modify argument parsing:
# @parseArger declarations at the top of the fileparseArger parse FILE --inplace to regenerate the parsing logicThe generated parsing code is regenerated every time you use parseArger parse.
generate)Use when creating a NEW script that doesn't exist yet.
--outputparseArger generate --output /path/to/script.sh [OPTIONS]
Without --output, output goes to stdout only.
Define arguments using specific flags. The value is a quoted string containing the name, description, and specific settings.
Positional Arguments (--pos)
Syntax: --pos 'NAME "DESCRIPTION" [SETTINGS]'
Settings:
--optional: Make the argument optional.--repeat: Allow multiple values (creates an array _arg_name).--repeat-min N: Min repetitions (implies --repeat).--repeat-max N: Max repetitions.--one-of "VAL": Restrict to specific values (repeatable).--complete "FUNC": Bash built-in completion (e.g., file, directory).--complete-custom "CMD": Custom dynamic completion command.--match "REGEX": Validate input against a regex pattern (e.g. ^[0-9]+$).--subcommand: Mark as a subcommand (see Subcommands below).**Options (--opt)Syntax:--opt 'NAME "DESCRIPTION" [SETTINGS]'`
Settings:
--short "C": Short flag character (e.g., o).--default-value "VAL": Default value if not provided.--repeat: Allow multiple occurrences.--alias "NAME": Alternative long name.--empty: Allow usage without value (acts like flag).--empty-value "VAL": Value to set if used without value (requires --empty).--env "VAR": Fallback to environment variable if option not provided.--required: Mark option as mandatory (script fails if missing).--match "REGEX": Validate input against a regex pattern (e.g. ^[0-9]+$).Flags (--flag)
Syntax: --flag 'NAME "DESCRIPTION" [SETTINGS]'
Settings:
--short "C": Short flag character (e.g., f).--on: Flag is on by default (passing it turns it off).--alias "NAME": Alias.--no-name "NAME": Custom name for negation (e.g., --dont-do-it).Nested Options (--nested)
Syntax: --nested 'NAME "DESCRIPTION" [SETTINGS]'
Creates an associative array for namespaced options (e.g., --config-db value).
Settings:
--one-of "KEY": Restrict accepted keys.--complete "FUNC", --complete-custom "CMD".Global Settings
--help-message "MSG": Main help text.--help-option "OPT": Custom help flag (default help).--version-opt: Enable --version.--set-version "VER": Set version number.--leftovers: Enable collecting extra arguments (into _arg_leftovers).--verbose-level N: Default verbose level (default 0).--die-fn-name "NAME": Rename internal die function.--log-fn-name "NAME": Rename internal log function.parseArger generate --output /path/to/my-script.sh \
--pos 'filename "Input file" --complete file' \
--opt 'output "Output file" --short o --default-value "out.txt"' \
--flag 'force "Overwrite existing" --short f' \
--nested 'config "Configuration namespace"' \
--leftovers
# Variables follow pattern $_arg_<name> (hyphens -> underscores)
echo "File: $_arg_filename"
echo "Output: $_arg_output"
if [ "$_arg_force" == "on" ]; then echo "Forcing..."; fi
# Nested options are associative arrays
# CLI: --config-db sqlite
echo "DB: ${_arg_config[db]}"
parse)Use when the file EXISTS and was created with parseArger.
parseArger parse FILE [OPTIONS]
-i or --inplace: Modify the file directly (RECOMMENDED).--pos, --opt, --flag: Add new arguments to the existing ones.--set-version "VER": Update the version.# Add a new verbose flag to an existing script
parseArger parse my-script.sh --inplace \
--flag 'verbose "Enable verbose logging" --short v'
CRITICAL: Only use parse on files that:
# @parseArger commentsTo create a subcommand structure:
--subcommand.--subcommand-directory "DIR" to point to a directory of scripts.parseArger will treat files in that directory as subcommands.Example:
parseArger generate --output /path/to/main.sh \
--pos 'action "What to do" --subcommand --subcommand-directory ./bin'
Specific Subcommand Settings:
--subcommand-directory "DIR": Auto-populate valid values from scripts in DIR.--subcommand-run: Immediately execute the subcommand script found.--subcommand-use-leftovers: Pass any leftover arguments to the subcommand.--subcommand-variable "VAR": Store subcommand parts in a specific variable (default __subcommand).| Scenario | Command | Key Options |
|----------|---------|-------------|
| Create new script | generate | --output PATH (REQUIRED) |
| Modify existing script | parse | --inplace (RECOMMENDED) |
| Add arguments to existing | parse | --pos, --opt, --flag |
| Update version | parse | --set-version |
npx skills add DimitriGilbert/parsearger-core下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer