73 lines
1.5 KiB
Bash
73 lines
1.5 KiB
Bash
# string formatters
|
|
if [[ -t 1 ]]; then
|
|
Tty_escape() { printf "\033[%sm" "$1"; }
|
|
else
|
|
Tty_escape() { :; }
|
|
fi
|
|
Tty_mkbold() { Tty_escape "1;${1:-39}"; }
|
|
Tty_red=$(Tty_mkbold 31)
|
|
Tty_green=$(Tty_mkbold 32)
|
|
Tty_brown=$(Tty_mkbold 33)
|
|
Tty_blue=$(Tty_mkbold 34)
|
|
Tty_magenta=$(Tty_mkbold 35)
|
|
Tty_cyan=$(Tty_mkbold 36)
|
|
Tty_white=$(Tty_mkbold 37)
|
|
Tty_underscore=$(Tty_escape 38)
|
|
Tty_bold=$(Tty_mkbold 39)
|
|
Tty_reset=$(Tty_escape 0)
|
|
|
|
# fatal: Report fatal error
|
|
# USAGE: fatal <msg> ...
|
|
fatal() {
|
|
echo "${Tty_red}${msg_prefix}FATAL ERROR:${Tty_reset} $*" >&2
|
|
exit 1
|
|
}
|
|
|
|
# error: Report error
|
|
# USAGE: error <msg> ...
|
|
error() {
|
|
echo "${Tty_red}${msg_prefix}ERROR:${Tty_reset} $*" >&2
|
|
}
|
|
|
|
# warn: Report warning
|
|
# USAGE: warn <msg> ...
|
|
warn() {
|
|
echo "${Tty_blue}${msg_prefix}Warning:${Tty_reset} $*" >&2
|
|
}
|
|
|
|
# info: Informational message
|
|
# USAGE: info <msg> ...
|
|
info() {
|
|
echo "${Tty_green}${msg_prefix}Info:${Tty_reset} $*" >&2
|
|
}
|
|
|
|
# need_progs: Checks for command dependencies
|
|
# USAGE: need_progs <cmd> ...
|
|
need_progs() {
|
|
local missing=()
|
|
local i
|
|
for i in "$@"; do
|
|
type -P "$i" &>/dev/null || missing+=("$i")
|
|
done
|
|
if [[ ${#missing[@]} -gt 0 ]]; then
|
|
fatal "Commands missing: ${missing[*]}"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# cmd: Show command being run
|
|
# USAGE: cmd <cmd> ...
|
|
cmd() {
|
|
echo "${Tty_cyan}>>> $*${Tty_reset}" >&2
|
|
command "$@"
|
|
}
|
|
|
|
# git_in: Run Git command in repo
|
|
# USAGE: git_in <repo> <cmd> ...
|
|
git_in() {
|
|
local repo=$1; shift
|
|
pushd "$repo" >/dev/null || fatal "Can't cd to '$repo'"
|
|
cmd git "$@"
|
|
popd >/dev/null
|
|
}
|