54 lines
1018 B
Bash
54 lines
1018 B
Bash
|
# shared shell functions
|
||
|
|
||
|
info() {
|
||
|
local msg="$@"
|
||
|
local timestamp="$(date +%H:%M:%S)"
|
||
|
say "===> ${timestamp} ${msg}" "green"
|
||
|
}
|
||
|
|
||
|
warn() {
|
||
|
local msg="$@"
|
||
|
local timestamp=$(date +%H:%M:%S)
|
||
|
say "===> ${timestamp} WARN: ${msg}" "yellow" >&2
|
||
|
}
|
||
|
|
||
|
fail() {
|
||
|
local msg="$@"
|
||
|
say "ERROR: ${msg}" "red" >&2
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
# say prints the given message to STDOUT, using the optional color if
|
||
|
# STDOUT is a terminal.
|
||
|
#
|
||
|
# usage:
|
||
|
#
|
||
|
# say "foo" - prints "foo"
|
||
|
# say "bar" "red" - prints "bar" in red
|
||
|
# say "baz" "green" - prints "baz" in green
|
||
|
# say "qux" "red" | tee - prints "qux" with no colour
|
||
|
#
|
||
|
say() {
|
||
|
local msg=$1
|
||
|
local color=$2
|
||
|
|
||
|
if [[ -n "${color}" ]] && [[ -t 1 ]]; then
|
||
|
case "${color}" in
|
||
|
red)
|
||
|
echo -e "\033[1;31m${msg}\033[0m"
|
||
|
;;
|
||
|
green)
|
||
|
echo -e "\033[1;32m${msg}\033[0m"
|
||
|
;;
|
||
|
yellow)
|
||
|
echo -e "\033[1;33m${msg}\033[0m"
|
||
|
;;
|
||
|
*)
|
||
|
echo "${msg}"
|
||
|
;;
|
||
|
esac
|
||
|
else
|
||
|
echo "${msg}"
|
||
|
fi
|
||
|
}
|