* Make the license less restrictive. See #14
So that people can use _just_ main.sh without bothering with also
distributing the license
* Add license update to changelog
* Add a comment about expansion, see #26
* Use an unmodified MIT License, with the more permissive clause inside the code
As modifying the MIT License will needlessly (but rightfully) cause
suspicion
* Credit @bravo-kernel for his feedback
* Fix another typo
* Reword copyright
Fixes problem where long options with dashes, like `--no-color` were
broken. This was due to the fact that bash variable names must match
`[_a-zA-Z][_0-9a-zA-Z]*` and the usage parsing and option handling was
trying to create variables with dashes in their names. Short of
employing Bash4 associative arrays, "name mangling" seemed like the
best solution to this problem.
Solution: map dashes to underscores when creating bash variables in the
script that correspond to long option flags. The downside of this is
that `--no_color` and `--no-color` will collide, but users expecting to
use options that are identical except one has an underscore and the
other has a dash deserve the ensuing confusion.
- Enable long, GNU style options, fixes#1
- *CAVEAT* A short option must be preset for every long option;
but every short option need *not* have a long option
- No BASH 4 features were added, works with bash 3 and standard sed and
awk
- `--` is still respected as the separator between options and arguments
- Use `awk` only instead of `awk` and `sed` for parsing short options
from usage string
- Enable errexit, nounset and pipefail at the top
So that scripts based on bash3boilerplate are easier to use before pipes.
It also makes it feasible to use an emergency inside a function without losing emergency's output being captured by the function's caller