feat(user/bkmpv2): v0.1.0: Permit specifying files as well as dirs
[BK-2020-03.git] / unitproc / bkt-yellDieMust
CommitLineData
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
13yell() { echo "$0: $*" >&2; } # print script path and all args to stderr
14die() { yell "$*"; exit 111; } # same as yell() but non-zero exit status
849106f7 15must() { "$@" || die "cannot $*"; } # runs args as command, reports args if command fails
0ed005b0
SBS
16#===END Declare local script functions===
17
18#==BEGIN sample code==
19yell "This message should appear in stderr.";
849106f7
SBS
20must echo "This message should appear in stdout.";
21must eeeecho "This message should appear in an error message in stderr.";
22yell "This message should not appear because \"must eeeecho\" failed.";
0ed005b0 23#==END sample code==