#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" # shellcheck source=./lib.sh source "$SCRIPT_DIR/lib.sh" REMOTE_HOST="" REMOTE_USER="" REMOTE_PORT="22" OUT_DIR="$SCRIPT_DIR/output" AUTO_YES=false USE_SUDO=true usage() { cat </dev/null log_info "Capturing nginx version and build info..." ssh "${ssh_opts[@]}" "$ssh_target" "${sudo_prefix}nginx -V 2>&1" > "${OUT_DIR}/nginx-version.txt" log_info "Capturing full rendered nginx config (nginx -T)..." ssh "${ssh_opts[@]}" "$ssh_target" "${sudo_prefix}nginx -T 2>&1" > "${OUT_DIR}/nginx-full.conf" log_info "Capturing /etc/nginx snapshot..." ssh "${ssh_opts[@]}" "$ssh_target" "${sudo_prefix}tar -C / -czf - etc/nginx" > "${OUT_DIR}/etc-nginx.tar.gz" log_info "Building inventory summary..." { echo "Inventory generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)" echo echo "Server names:" awk ' /^[[:space:]]*server_name[[:space:]]+/ { line=$0 sub(/^[[:space:]]*server_name[[:space:]]+/, "", line) sub(/[[:space:]]*;[[:space:]]*$/, "", line) gsub(/[[:space:]]+/, " ", line) print " - " line } ' "${OUT_DIR}/nginx-full.conf" | sort -u echo echo "Proxy targets:" awk ' /^[[:space:]]*proxy_pass[[:space:]]+/ { line=$0 sub(/^[[:space:]]*proxy_pass[[:space:]]+/, "", line) sub(/[[:space:]]*;[[:space:]]*$/, "", line) print " - " line } ' "${OUT_DIR}/nginx-full.conf" | sort -u } > "${OUT_DIR}/inventory-summary.txt" log_success "Nginx inventory collected in: ${OUT_DIR}" log_info "Next: run nginx_to_caddy.sh --input=${OUT_DIR}/nginx-full.conf"