#!/bin/bash
# Desc: Defines bash functions yell(), die(), and try(), which are useful for
#   indicating where in a script an error occurs.
# Ref/Attrib: [1] Yell, Die, Try Three-Fingered Claw technique https://stackoverflow.com/a/25515370
# Depends: GNU Coreutils 8.30

#==BEGIN Define script parameters==
#==END Define script parameters==

#===BEGIN Declare local script functions===
yell() { echo "$0: $*" >&2; }
die() { yell "$*"; exit 111; }
try() { "$@" || die "cannot $*"; }
#===END Declare local script functions===

#==BEGIN sample code==
yell "This message should appear in stderr.";
try echo "This message should appear in stdout.";
try eeeecho "This message should appear in an error message in stderr.";
yell "This message should not appear because \"try eeeecho\" failed.";
#==END sample code==