You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.8 KiB
75 lines
1.8 KiB
3 years ago
|
* Stowage
|
||
|
|
||
|
Needed information for generation:
|
||
|
- short option
|
||
|
- long option
|
||
|
- short description (for usage ouput)
|
||
|
- long description (for manpage output)
|
||
|
|
||
|
* Option Parsing
|
||
|
|
||
|
Parsed from left to right.
|
||
|
|
||
|
** Types
|
||
|
|
||
|
- Short option
|
||
|
- Long option
|
||
|
- Argument to option
|
||
|
- Non-option parameter (default argument)
|
||
|
|
||
|
*** Short Option
|
||
|
|
||
|
'-' followed by short option character.
|
||
|
If option has required argument, directly after OR separated by white-space.
|
||
|
Optional argument must be directly after the option character.
|
||
|
|
||
|
Possible to write several short options after one '-',
|
||
|
if all (except last) do not have *required* or *optional* arguments.
|
||
|
|
||
|
*** Long Option
|
||
|
|
||
|
'--' followed by long option name.
|
||
|
If option has a required argument, directly after, separated by '=' OR white-space.
|
||
|
Optional argument must be directly after the option, separated by '='.
|
||
|
|
||
|
*** Non-option Parameter
|
||
|
|
||
|
Each parameter not starting with '-' and not a required argument of a previous option,
|
||
|
is a non-option parameter.
|
||
|
|
||
|
Each parameter after a '--' parameter is always interpreted as a non-option parameter.
|
||
|
|
||
|
* Examples
|
||
|
|
||
|
#+BEGIN_SRC shell-script
|
||
|
./stowage -Fals
|
||
|
./stowage -F -a -l -s
|
||
|
|
||
|
./stowage --file --add --pull --push
|
||
|
|
||
|
./stowage -r filename
|
||
|
./stowage -rfilename
|
||
|
./stowage --remove=filename
|
||
|
./stowage --remove filename
|
||
|
|
||
|
./stowage --remove filename other stuff
|
||
|
./stowage --remove filename -- other stuff
|
||
|
#+END_SRC
|
||
|
|
||
|
** Multiple of the same options
|
||
|
|
||
|
#+BEGIN_SRC shell-script
|
||
|
./stowage -e pattern1 -epattern2 --regexp=pattern3 --regexp pattern4
|
||
|
#+END_SRC
|
||
|
|
||
|
* TODO
|
||
|
|
||
|
- after first non option, go into no-option mode
|
||
|
- support '--' to go into no-option mode
|
||
|
- add multi-option support, vectors!
|
||
|
- support argument parsing + storing
|
||
|
- add addOption overloads
|
||
|
- generate usage string
|
||
|
- generate man page string
|
||
|
- parse() function to return bool true if any error has occured
|