58 lines
2.0 KiB
Bash
58 lines
2.0 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
TS="$(date +%Y%m%d_%H%M%S)"
|
|
BK="/root/aza-app/backups/woocommerce_period_sync_env_deploy_${TS}"
|
|
mkdir -p "${BK}"
|
|
cp -a /root/aza-app/data/stripe_webhook.sqlite "${BK}/"
|
|
cp -a /root/aza-app/admin_routes.py "${BK}/"
|
|
test -f /root/aza-app/aza_wc_period_sync.py && cp -a /root/aza-app/aza_wc_period_sync.py "${BK}/" || true
|
|
cp -a /root/aza-app/deploy/.env "${BK}/.env.backup"
|
|
{
|
|
echo "Rollback (als root auf diesem Server):"
|
|
echo ""
|
|
echo "cd /root/aza-app/deploy"
|
|
echo "docker compose stop aza-api"
|
|
echo ""
|
|
echo "cp \"${BK}/stripe_webhook.sqlite\" /root/aza-app/data/stripe_webhook.sqlite"
|
|
echo "cp \"${BK}/admin_routes.py\" /root/aza-app/admin_routes.py"
|
|
if test -f "${BK}/aza_wc_period_sync.py"; then
|
|
echo "cp \"${BK}/aza_wc_period_sync.py\" /root/aza-app/aza_wc_period_sync.py"
|
|
fi
|
|
echo "cp \"${BK}/.env.backup\" /root/aza-app/deploy/.env"
|
|
echo ""
|
|
echo "docker compose build --no-cache aza-api"
|
|
echo "docker compose up -d --force-recreate aza-api"
|
|
} > "${BK}/README_RESTORE.txt"
|
|
python3 << 'PY'
|
|
from pathlib import Path
|
|
patch_path = Path("/tmp/aza_woo_patch.env")
|
|
text = patch_path.read_text(encoding="utf-8")
|
|
vars_to_set = {}
|
|
for line in text.splitlines():
|
|
line = line.strip()
|
|
if not line or line.startswith("#") or "=" not in line:
|
|
continue
|
|
k, v = line.split("=", 1)
|
|
vars_to_set[k.strip()] = v.strip()
|
|
env_path = Path("/root/aza-app/deploy/.env")
|
|
lines = env_path.read_text(encoding="utf-8").splitlines() if env_path.exists() else []
|
|
keys = set(vars_to_set)
|
|
new_lines = []
|
|
seen = set()
|
|
for line in lines:
|
|
t = line.strip()
|
|
if t and not t.startswith("#") and "=" in t:
|
|
k = t.split("=", 1)[0].strip()
|
|
if k in keys:
|
|
new_lines.append("%s=%s" % (k, vars_to_set[k]))
|
|
seen.add(k)
|
|
continue
|
|
new_lines.append(line)
|
|
for k in sorted(keys - seen):
|
|
new_lines.append("%s=%s" % (k, vars_to_set[k]))
|
|
env_path.write_text("\n".join(new_lines) + "\n", encoding="utf-8")
|
|
patch_path.unlink()
|
|
PY
|
|
chmod 600 /root/aza-app/deploy/.env
|
|
echo "BACKUP_PATH=${BK}"
|