43 lines
864 B
Bash
43 lines
864 B
Bash
#!/bin/bash
|
|
# Common utility functions shared across multiple files.
|
|
|
|
RESET="\033[0m"
|
|
GREEN="\033[1;32m"
|
|
YELLOW="\033[1;33m"
|
|
RED="\033[1;31m"
|
|
|
|
check_dependencies() {
|
|
# Usage: check_dependencies "7z" "unrar" "curl" ...
|
|
local dependencies=()
|
|
local dependency
|
|
|
|
for dependency in "$@"; do
|
|
if ! command -v "$dependency" >/dev/null; then
|
|
dependencies+=("$dependency")
|
|
fi
|
|
done
|
|
|
|
if (( "${#dependencies[@]}" > 0 )); then
|
|
log "ERROR" "Missing dependencies" "${dependencies[@]}"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
log() {
|
|
# Usage: log "NOTICE|WARN|ERROR" "this is a log message" ...
|
|
local caller="${0##*/}"
|
|
local level="$1"; shift
|
|
local color
|
|
|
|
case "$level" in
|
|
NOTICE) color="$GREEN" ;;
|
|
WARN) color="$YELLOW" ;;
|
|
ERROR) color="$RED" ;;
|
|
|
|
# No color for these levels.
|
|
INFO) color="" ;;
|
|
*) color="" ;;
|
|
esac
|
|
|
|
echo -e "$caller: ${color}[$level]: $*${RESET}" >&2
|
|
}
|