Commit | Line | Data |
---|---|---|
0ed005b0 | 1 | #!/bin/bash |
849106f7 | 2 | # Desc: Defines bash functions yell(), die(), and must(), which are useful for |
0ed005b0 | 3 | # indicating where in a script an error occurs. |
831b1cb4 | 4 | # Note: All three functions should be added together if used at all. |
0ed005b0 SBS |
5 | # Ref/Attrib: [1] Yell, Die, Try Three-Fingered Claw technique https://stackoverflow.com/a/25515370 |
6 | # Depends: GNU Coreutils 8.30 | |
849106f7 | 7 | # Version 1.0.0 |
0ed005b0 SBS |
8 | |
9 | #==BEGIN Define script parameters== | |
10 | #==END Define script parameters== | |
11 | ||
12 | #===BEGIN Declare local script functions=== | |
831b1cb4 SBS |
13 | yell() { echo "$0: $*" >&2; } # print script path and all args to stderr |
14 | die() { yell "$*"; exit 111; } # same as yell() but non-zero exit status | |
849106f7 | 15 | must() { "$@" || die "cannot $*"; } # runs args as command, reports args if command fails |
0ed005b0 SBS |
16 | #===END Declare local script functions=== |
17 | ||
18 | #==BEGIN sample code== | |
19 | yell "This message should appear in stderr."; | |
849106f7 SBS |
20 | must echo "This message should appear in stdout."; |
21 | must eeeecho "This message should appear in an error message in stderr."; | |
22 | yell "This message should not appear because \"must eeeecho\" failed."; | |
0ed005b0 | 23 | #==END sample code== |