#!/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 }