fisher/man/man1/getopts.md
Jorge Bucaran e0ed629777
One more push before 0.8.0, fixed bugs, paved the way for DEBUG mode.
* Add Mizuki to THANKS for help with Japanese translation of the QuickStart Guide.
* fisher --list should return 1 (fail) if no plugins are installed. Closes #101.
* More consistent style 'Usage' instead of 'usage'.
* Silence index check in case $fisher_cache/.index does not exist.
* Add more descriptive message if plugin is not found.
* Silence search failure in case $fisher_cache/.index does not exist.
2016-02-15 21:24:22 +09:00

105 lines
2.3 KiB
Markdown

getopts(1) -- Parse CLI options
===============================
## SYNOPSIS
`getopts` [*options* ...]<br>
`getopts` [*options* ...] `|` `while` read -l key value; ...; `end`<br>
## DESCRIPTION
`Getopts` is a command line parser implemented in `awk(1)`, designed to process command line arguments in the easiest way possible.
## USAGE
The best way to understand how `getopts` work is by studying a simple example.
```
getopts -ab1 --foo=bar baz
```
And its output.
```
a
b 1
foo bar
_ baz
```
The items on the left represent the option flags or *keys* associated with the CLI. The items on the right are the option *values*. The underscore `_` character is the default *key* for arguments without a key.
Use `read(1)` to process the generated stream and `switch(1)` to match patterns:
```
getopts -ab1 --foo=bar baz | while read -l key option
switch $key
case _
case a
case b
case foo
end
end
```
## OPTIONS
None.
## EXAMPLES
The following is a mock of `fish(1)` CLI missing the implementation:
```
function fish
set -l mode
set -l flags
set -l commands
set -l debug_level
getopts $argv | while read -l key value
switch $key
case c command
set commands $commands $value
case d debug-level
set debug_level $value
case i interactive
set mode $value
case l login
set mode $value
case n no-execute
set mode $value
case p profile
set flags $flags $value
case h help
printf "Usage: $_ [OPTIONS] [-c command] [FILE [ARGUMENTS...]]\n"
return
case \*
printf "$_: '%s' is not a valid option.\n" $key
return 1
end
end
# Implementation
end
```
## BUGS
* getopts does *not* read the standard input. Use getopts to collect options and the standard input to process a stream of data relevant to your program.
* A double dash, `--`, marks the end of options. Arguments after this sequence are placed in the default underscore key, `_`.
* The getopts described in this document is *not* equivalent to the getopts *builtin* found in other shells.
## AUTHORS
Jorge Bucaran <j@bucaran.me>.