homebrew-fuse/lib/funcs.sh

80 lines
1.6 KiB
Bash
Raw Normal View History

2025-02-10 20:55:31 +08:00
# shellcheck shell=bash
# shellcheck disable=SC2034
2021-06-28 23:45:32 +08:00
# string formatters
2025-02-10 20:21:16 +08:00
if [[ -t 1 ]]
then
2021-06-28 23:45:32 +08:00
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)
2025-02-10 20:55:31 +08:00
msg_prefix=""
2021-06-28 23:45:32 +08:00
# 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
2025-02-10 20:21:16 +08:00
for i in "$@"
do
type -P "${i}" &>/dev/null || missing+=("${i}")
2021-06-28 23:45:32 +08:00
done
2025-02-10 20:21:16 +08:00
if [[ ${#missing[@]} -gt 0 ]]
then
2021-06-28 23:45:32 +08:00
fatal "Commands missing: ${missing[*]}"
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() {
2025-02-10 20:21:16 +08:00
local repo=$1
shift
pushd "${repo}" >/dev/null || fatal "Can't cd to '${repo}'"
2021-06-28 23:45:32 +08:00
cmd git "$@"
2025-02-10 20:21:16 +08:00
popd >/dev/null || exit
2021-06-28 23:45:32 +08:00
}