#!/usr/bin/env bash # Fonctions et variables partagées par les scripts de déploiement. # Usage : source "$(dirname "$0")/lib.sh" set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" # Config non-secrète [ -f "$ROOT/deploy.conf" ] && . "$ROOT/deploy.conf" # Secrets (optionnels selon le script) load_secrets() { if [ ! -f "$ROOT/.secrets.env" ]; then echo "❌ $ROOT/.secrets.env manquant. Lance d'abord scripts/00-gen-secrets.sh" >&2 exit 1 fi set -a; . "$ROOT/.secrets.env"; set +a } # Nom réel d'un conteneur (avec suffixe Coolify si défini) # ex: cname ark-backend -> ark-backend-tdquwauzxsq0985fk9kjqqys (mode Coolify) # -> ark-backend (mode CLI) cname() { echo "$1${CONTAINER_SUFFIX:-}"; } # docker exec sur un service Arkindex dex() { local svc="$1"; shift; docker exec "$(cname "$svc")" "$@"; } dexi() { local svc="$1"; shift; docker exec -i "$(cname "$svc")" "$@"; } log() { printf '\033[1;34m▶ %s\033[0m\n' "$*"; } ok() { printf '\033[1;32m✅ %s\033[0m\n' "$*"; } warn() { printf '\033[1;33m⚠ %s\033[0m\n' "$*"; } coolify_token() { cat "${COOLIFY_TOKEN_FILE}"; } capi() { # capi METHOD PATH [curl-args...] local m="$1" p="$2"; shift 2 curl -s -X "$m" -H "Authorization: Bearer $(coolify_token)" \ -H "Content-Type: application/json" -H "Accept: application/json" \ "$@" "${COOLIFY_API}${p}" }