#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" KEY="${KEY:-/home/long/下载/zjsea.pem}" REMOTE="${REMOTE:-ubuntu@43.155.133.187}" REMOTE_PORTAL_DIR="${REMOTE_PORTAL_DIR:-/var/www/sub2api-portal}" REMOTE_NGINX_SITE="${REMOTE_NGINX_SITE:-/etc/nginx/sites-available/tksea}" REMOTE_HOST_PORT="${REMOTE_HOST_PORT:-18169}" REMOTE_CRM_PORT="${REMOTE_CRM_PORT:-18173}" LOCAL_PORTAL_DIR="${LOCAL_PORTAL_DIR:-$ROOT_DIR/deploy/tksea-portal}" REMOTE_STAGE_DIR="${REMOTE_STAGE_DIR:-/tmp/sub2api-portal-deploy}" DRY_RUN="${DRY_RUN:-0}" die() { echo "$*" >&2 exit 1 } require_cmd() { command -v "$1" >/dev/null 2>&1 || die "missing command: $1" } run_cmd() { if [[ "$DRY_RUN" == "1" ]]; then printf 'DRY_RUN:' printf ' %q' "$@" printf '\n' return 0 fi "$@" } ssh_remote() { run_cmd ssh -i "$KEY" -o StrictHostKeyChecking=no "$REMOTE" "$@" } scp_remote() { run_cmd scp -i "$KEY" -o StrictHostKeyChecking=no "$@" } main() { require_cmd python3 require_cmd ssh require_cmd scp [[ -d "$LOCAL_PORTAL_DIR" ]] || die "missing portal dir: $LOCAL_PORTAL_DIR" [[ -f "$LOCAL_PORTAL_DIR/index.html" ]] || die "missing portal index: $LOCAL_PORTAL_DIR/index.html" if [[ "$DRY_RUN" != "1" ]]; then [[ -f "$KEY" ]] || die "missing ssh key: $KEY" fi local tmpdir patch_file portal_stage_dir tmpdir="$(mktemp -d)" trap "rm -rf $(printf '%q' "$tmpdir")" EXIT patch_file="$tmpdir/patch_tksea_portal_nginx.py" portal_stage_dir="$tmpdir/portal" mkdir -p "$portal_stage_dir" cp -R "$LOCAL_PORTAL_DIR/." "$portal_stage_dir/" cat > "$patch_file" <