So Argc is a little Rust program that your bash scripts can use to make handling command-line parameters easy. You describe the options, parameters, and subcommands in comments like this:

```

@describe A demo cli

@cmd Upload a file

@arg target! File to upload

upload() { echo "cmd upload" echo "arg: target $argc_target" }

```

Then you trust Argc to parse that and do the heavy lifting:

``` eval "$(argc -e $0 "$@")"

```

The only drawback (aside from potential parsing bugs) to this approach is your script now depends on having argc in the machine’s executable path. i.e. – it’s not portable.

What’d be even cooler, IMHO, would be to instead use argc as a pre-processor of sorts that spits out a pure-bash implementation from your input script. Regardless, a cool idea!

Discuss on Changelog News