#!/usr/bin/env bash # Logging functions for scripts # Usage: source "$(dirname "$0")/logging.sh" # Requires: colors.sh # Log levels (higher number = more verbose) LOG_LEVEL_ERROR=0 LOG_LEVEL_WARN=1 LOG_LEVEL_INFO=2 LOG_LEVEL_DEBUG=3 # Default log level LOG_LEVEL="${LOG_LEVEL:-$LOG_LEVEL_INFO}" # Log functions log_info() { if [ "$LOG_LEVEL" -ge "$LOG_LEVEL_INFO" ]; then echo -e "${GREEN}[INFO]${NC} $1" >&2 fi } log_error() { if [ "$LOG_LEVEL" -ge "$LOG_LEVEL_ERROR" ]; then echo -e "${RED}[ERROR]${NC} $1" >&2 fi } log_warn() { if [ "$LOG_LEVEL" -ge "$LOG_LEVEL_WARN" ]; then echo -e "${YELLOW}[WARN]${NC} $1" >&2 fi } log_debug() { if [ "$LOG_LEVEL" -ge "$LOG_LEVEL_DEBUG" ]; then echo -e "${CYAN}[DEBUG]${NC} $1" >&2 fi } log_success() { echo -e "${GREEN}✅${NC} $1" >&2 } log_failure() { echo -e "${RED}❌${NC} $1" >&2 } log_step() { echo -e "${BLUE}📋${NC} $1" >&2 } log_heading() { echo -e "\n${BOLD_CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" >&2 echo -e "${BOLD_CYAN}$1${NC}" >&2 echo -e "${BOLD_CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n" >&2 }