Files
gaokao-volunteer-system/data/cli_compat_backup.py

32 lines
956 B
Python
Raw Normal View History

2026-06-17 22:18:57 +08:00
"""Thin import shim for the `scripts/backup_snapshot.sh` / `backup_verify.sh` shells."""
from __future__ import annotations
import subprocess
import sys
from pathlib import Path
_SCRIPTS_DIR = Path(__file__).resolve().parent.parent / "scripts"
_SHELL_TARGETS = {
"snapshot": _SCRIPTS_DIR / "backup_snapshot.sh",
"verify": _SCRIPTS_DIR / "backup_verify.sh",
}
def main(argv: list[str] | None = None) -> int:
if argv is None:
argv = sys.argv[1:]
if not argv or argv[0] not in _SHELL_TARGETS:
valid = ", ".join(sorted(_SHELL_TARGETS))
raise SystemExit(f"gaokao-cli backup expects one of [{valid}]; got: {argv!r}")
subcommand = argv[0]
target = _SHELL_TARGETS[subcommand]
if not target.is_file():
raise FileNotFoundError(f"backup script not found at {target}")
completed = subprocess.run(
["bash", str(target), *argv[1:]],
check=False,
)
return completed.returncode