autoshare/includes/functions.sh

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
}