unixscripts:3-decentbash
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
decentbash [2015/12/31 03:05] – [Silence is golden] admin | unixscripts:3-decentbash [2020/10/17 03:04] (current) – admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | =====Decent Bash===== | + | =====Unixscripts: |
Here's my five penn' | Here's my five penn' | ||
Line 13: | Line 13: | ||
====Use argp.sh(1)==== | ====Use argp.sh(1)==== | ||
- | Even better, use my **getopt**(1) wrapper [[argp.sh]] which is kinda sorta like GNU's **argp**(3) in glibc. It gives you a single place to define options which is then used to: | + | Even better, use my **getopt**(1) wrapper [[unixscripts: |
* create the **getopt**(1) command line, | * create the **getopt**(1) command line, | ||
* process the options setting appropriate environment parameters | * process the options setting appropriate environment parameters | ||
Line 22: | Line 22: | ||
* increase the chance that help and man pages are actually written | * increase the chance that help and man pages are actually written | ||
- | ====Long options==== | + | ====Support |
Always provide long options as well as single letter options - they' | Always provide long options as well as single letter options - they' | ||
====Provide help==== | ====Provide help==== | ||
- | respond to the **-h, --help** option with a usage message to **!!!STDOUT!!!** and exit 0 | + | respond to the **-h, --help** option with a usage message to **!!!STDOUT!!!** and exit 0. This help should be available no matter what the machine' |
+ | |||
+ | If there are specific dependencies, | ||
====Provide version info==== | ====Provide version info==== | ||
Line 33: | Line 35: | ||
Note that **-h** and **-V** processing should happen before any other substantial processing or checking is done - make sure **-h** can always be done no matter what | Note that **-h** and **-V** processing should happen before any other substantial processing or checking is done - make sure **-h** can always be done no matter what | ||
- | ====Error messages==== | + | ====Be disciplined with error messages==== |
Error messages should go to **!!!STDERR!!!** - do **not** print the usage as it just fills the screen and hides the meat of the error. At the most, refer the user to the usage page with '' | Error messages should go to **!!!STDERR!!!** - do **not** print the usage as it just fills the screen and hides the meat of the error. At the most, refer the user to the usage page with '' | ||
- | ====Error exit==== | + | ====Be disciplined with error exit codes==== |
non-zero exit on any error | non-zero exit on any error | ||
Line 47: | Line 49: | ||
include a man page if non-trivial | include a man page if non-trivial | ||
- | ====crunchbang==== | + | ====Use a crunchbang==== |
always include the // | always include the // | ||
unixscripts/3-decentbash.1451556341.txt.gz · Last modified: 2015/12/31 03:05 by admin