COLOR_RED="\033[0;31m" COLOR_GREEN="\033[0;32m" COLOR_CYAN="\033[0;36m" COLOR_YELLOW="\033[0;33m" COLOR_PLAIN="\033[0m" function check_util() { which ${1} >/dev/null 2>&1 || fail "Missing ${1} util" } function error() { echo -e "${COLOR_RED}$@${COLOR_PLAIN}" >&2 } function fail() { error "$@" exit 1 } function fatal() { fail "$@" } function info() { echo -e "${COLOR_CYAN}$@${COLOR_PLAIN}" >&2 } function step() { info "[$(date +%H:%M:%S)] $(printf "%${script_level:-0}s" '' | tr ' ' '+')$@" } function success() { echo -e "${COLOR_GREEN}$@${COLOR_PLAIN}" >&2 } function warn() { echo -e "${COLOR_YELLOW}$@${COLOR_PLAIN}" >&2 }