autoshare/modules/functions.sh

38 lines
778 B
Bash

#!/bin/bash
# Common utility functions shared across multiple files.
source colors.sh
check_dependencies() {
# Usage: check_dependencies 7z unrar curl ...
local dependencies=()
for dependency in "$@"; do
if ! command -v "$dependency" >/dev/null; then
dependencies+=("$dependency")
fi
done
if (( "${#dependencies[@]}" > 0 )); then
log_err "Missing dependencies" "${dependencies[@]}"
return 1
fi
}
log() {
# Usage: log "NOTICE|ERROR|WARN" 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
}