#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" SKILL_ROOT="$(dirname "$SCRIPT_DIR")" source "$SCRIPT_DIR/_common.sh" : "${TUNNEL_NAME:=}" : "${HOSTNAME:=}" : "${LOCAL_SERVICE:=}" : "${SERVICE_NAME:=cloudflared-tunnel}" : "${CONFIG_DIR:=$SKILL_ROOT/outputs/config}" main() { confirm_gate need systemctl [[ -n "$TUNNEL_NAME" ]] || die "TUNNEL_NAME is required." [[ -n "$HOSTNAME" ]] || die "HOSTNAME is required." [[ -n "$LOCAL_SERVICE" ]] || die "LOCAL_SERVICE is required." [[ -f "$CONFIG_DIR/tunnel.json" ]] || die "Missing tunnel snapshot: $CONFIG_DIR/tunnel.json" local tunnel_id; tunnel_id="$(jq -r '.id' "$CONFIG_DIR/tunnel.json")" [[ -n "$tunnel_id" && "$tunnel_id" != "null" ]] || die "Invalid tunnel id in tunnel.json" mkdir -p "$CONFIG_DIR" # Generate cloudflared config cat > "$CONFIG_DIR/config.yml" </dev/null || true sudo tee "$unit" >/dev/null <