feat: add Nginx to Caddy migration toolkit with scripts and usage guide
This commit is contained in:
92
setup/nginx-to-caddy/validate_caddy.sh
Executable file
92
setup/nginx-to-caddy/validate_caddy.sh
Executable file
@@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
# shellcheck source=./lib.sh
|
||||
source "$SCRIPT_DIR/lib.sh"
|
||||
|
||||
CONFIG_FILE="$SCRIPT_DIR/output/Caddyfile.generated"
|
||||
FORMAT_FILE=true
|
||||
USE_DOCKER=false
|
||||
DO_ADAPT=true
|
||||
DO_VALIDATE=true
|
||||
CADDY_IMAGE="caddy:2"
|
||||
|
||||
usage() {
|
||||
cat <<USAGE
|
||||
Usage: $(basename "$0") [options]
|
||||
|
||||
Format/adapt/validate a generated Caddyfile.
|
||||
|
||||
Options:
|
||||
--config=PATH Caddyfile to validate (default: setup/nginx-to-caddy/output/Caddyfile.generated)
|
||||
--no-format Skip caddy fmt
|
||||
--no-adapt Skip caddy adapt
|
||||
--no-validate Skip caddy validate
|
||||
--docker Use Docker image instead of local caddy binary
|
||||
--image=NAME Docker image when --docker is used (default: caddy:2)
|
||||
--help, -h Show help
|
||||
USAGE
|
||||
}
|
||||
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--config=*) CONFIG_FILE="${arg#*=}" ;;
|
||||
--no-format) FORMAT_FILE=false ;;
|
||||
--no-adapt) DO_ADAPT=false ;;
|
||||
--no-validate) DO_VALIDATE=false ;;
|
||||
--docker) USE_DOCKER=true ;;
|
||||
--image=*) CADDY_IMAGE="${arg#*=}" ;;
|
||||
--help|-h) usage; exit 0 ;;
|
||||
*) log_error "Unknown argument: $arg"; usage; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ ! -f "$CONFIG_FILE" ]]; then
|
||||
log_error "Config file not found: $CONFIG_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$USE_DOCKER" == "true" ]]; then
|
||||
require_cmd docker
|
||||
|
||||
if [[ "$FORMAT_FILE" == "true" ]]; then
|
||||
log_info "Formatting Caddyfile with Docker..."
|
||||
docker run --rm \
|
||||
-v "$CONFIG_FILE:/etc/caddy/Caddyfile" \
|
||||
"$CADDY_IMAGE" caddy fmt --overwrite /etc/caddy/Caddyfile
|
||||
fi
|
||||
|
||||
if [[ "$DO_ADAPT" == "true" ]]; then
|
||||
log_info "Adapting Caddyfile (Docker)..."
|
||||
docker run --rm \
|
||||
-v "$CONFIG_FILE:/etc/caddy/Caddyfile:ro" \
|
||||
"$CADDY_IMAGE" caddy adapt --config /etc/caddy/Caddyfile --adapter caddyfile >/dev/null
|
||||
fi
|
||||
|
||||
if [[ "$DO_VALIDATE" == "true" ]]; then
|
||||
log_info "Validating Caddyfile (Docker)..."
|
||||
docker run --rm \
|
||||
-v "$CONFIG_FILE:/etc/caddy/Caddyfile:ro" \
|
||||
"$CADDY_IMAGE" caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile
|
||||
fi
|
||||
else
|
||||
require_cmd caddy
|
||||
|
||||
if [[ "$FORMAT_FILE" == "true" ]]; then
|
||||
log_info "Formatting Caddyfile..."
|
||||
caddy fmt --overwrite "$CONFIG_FILE"
|
||||
fi
|
||||
|
||||
if [[ "$DO_ADAPT" == "true" ]]; then
|
||||
log_info "Adapting Caddyfile..."
|
||||
caddy adapt --config "$CONFIG_FILE" --adapter caddyfile >/dev/null
|
||||
fi
|
||||
|
||||
if [[ "$DO_VALIDATE" == "true" ]]; then
|
||||
log_info "Validating Caddyfile..."
|
||||
caddy validate --config "$CONFIG_FILE" --adapter caddyfile
|
||||
fi
|
||||
fi
|
||||
|
||||
log_success "Validation checks complete"
|
||||
Reference in New Issue
Block a user