#!/usr/bin/env bash
set -euo pipefail

# Common helpers for all modules

log()   { printf "\033[1;34m[INFO]\033[0m %s\n" "$*"; }
warn()  { printf "\033[1;33m[WARN]\033[0m %s\n" "$*"; }
err()   { printf "\033[1;31m[ERR ]\033[0m %s\n" "$*" 1>&2; }
die()   { err "$*"; exit 1; }

require_cmd() {
  for c in "$@"; do
    command -v "$c" >/dev/null 2>&1 || die "Missing required command: $c"
  done
}

backup_path() {
  local src="$1"
  local dst_root="/root/backup-exosys/$(date +%Y%m%d-%H%M%S)"
  local dst="$dst_root/$src"
  mkdir -p "$(dirname "$dst")"
  if [ -e "$src" ]; then
    cp -a "$src" "$dst"
    log "Backed up $src -> $dst"
  else
    warn "Path not found (skip backup): $src"
  fi
}