mirror of
https://github.com/jorgebucaran/fisher
synced 2024-11-09 07:10:27 +00:00
707855203a
This patch contains several amends for 0.3.0 and other minor documentation corrections. Major documentation revision and rewrite. fisher help shows fisher(1) by default now. Fix a critical bug that was causing fisher uninstall --force to remove not the symbolic link, but the actual files. Closes #24 Rename orphan tag to custom for plugins installed using a custom URL. warning Remove fisher --link flag and create symbolic links by default for local paths. The user does not have to worry about symbolic links or whether the copy is as symbolic link or not anymore. If the user tries to install a local path, then the best thing to do is to create a symbolic link. This also eliminates the need to call update. warning Remove fisher --cache and fisher --validate. Now, that these options are separated into their own function and they are intentionally private, there is no need for them.
109 lines
2.3 KiB
Markdown
109 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, designed to process command line arguments based in the POSIX Utility Syntax Guidelines. If no arguments are given getopts returns `1`.
|
|
|
|
## USAGE
|
|
|
|
In the following 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>.
|
|
|
|
## SEE ALSO
|
|
|
|
POSIX Utility Syntax Guidelines [goo.gl/yrgQn9]<br>
|