bash3boilerplate
bash3boilerplate copied to clipboard
Throw errors and/or don't consume next option when OPTARG missing
$ LOG_LEVEL=7 /bin/bash -o pipefail -o nounset -o errexit ./main.sh -f -t
2016-02-16 16:27:12 UTC [ debug] cli arg arg_f = () -> -t
2016-02-16 16:27:12 UTC [ info] You are on OSX
2016-02-16 16:27:12 UTC [ debug] Info useful to developers for debugging the application, not useful during operations.
2016-02-16 16:27:12 UTC [ info] Normal operational messages - may be harvested for reporting, measuring throughput, etc. - no action required.
2016-02-16 16:27:12 UTC [ notice] Events that are unusual but not error conditions - might be summarized in an email to developers or admins to spot potential problems - no immediate action required.
2016-02-16 16:27:12 UTC [ warning] Warning messages, not an error, but indication that an error will occur if action is not taken, e.g. file system 85% full - each item must be resolved within a given time. This is a debug message
2016-02-16 16:27:12 UTC [ error] Non-urgent failures, these should be relayed to developers or admins; each item must be resolved within a given time.
2016-02-16 16:27:12 UTC [ critical] Should be corrected immediately, but indicates failure in a primary system, an example is a loss of a backup ISP connection.
2016-02-16 16:27:12 UTC [ alert] Should be corrected immediately, therefore notify staff who can fix the problem. An example would be the loss of a primary ISP connection.
2016-02-16 16:27:12 UTC [emergency] A "panic" condition usually affecting multiple apps/servers/sites. At this level it would usually notify all tech staff on call.
2016-02-16 16:27:12 UTC [ info] Cleaning up. Done
perhaps this should be marked won't fix... I'll research what unix tools and similar do in this case
Failing hard in this case seems like a good idea. At least when options are defined that is.