#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" SKILL_ROOT="$(dirname "$SCRIPT_DIR")" source "$SCRIPT_DIR/_common.sh" : "${REGISTRY_PORT:=5000}" : "${DATA_DIR:=$HOME/registry}" : "${AUTH_DIR:=$HOME/registry/auth}" : "${REGISTRY_USER:=}" compose_cmd() { if command -v docker-compose >/dev/null 2>&1; then echo "docker-compose" else echo "docker compose" fi } main() { confirm_gate need docker [[ -n "$REGISTRY_USER" ]] || die "REGISTRY_USER is required." local ts; ts="$(date -Iseconds | tr ':' '-')" local backup_dir="$SKILL_ROOT/outputs/backups/$ts" mkdir -p "$backup_dir" # Auth if command -v htpasswd >/dev/null 2>&1; then log_warn "Creating htpasswd entry for $REGISTRY_USER" htpasswd -B -c "$AUTH_DIR/htpasswd" "$REGISTRY_USER" cp -a "$AUTH_DIR/htpasswd" "$backup_dir/htpasswd" else die "htpasswd not available; install apache2-utils." fi # Compose cat > "$SKILL_ROOT/outputs/compose.yml" <