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