import zipfile import datetime from pathlib import Path WEB_FOLDER = Path("plots") BACKUP_FOLDER = Path("backups") today = datetime.date.today().strftime("%Y%m%d") backup_name = f"backup-{today}.zip" backup_path = BACKUP_FOLDER / backup_name BACKUP_FOLDER.mkdir(parents=True, exist_ok=True) if backup_path.exists(): print(f"Backup already exists: {backup_path}") else: print(f"Creating backup: {backup_path}") with zipfile.ZipFile(backup_path, "w", zipfile.ZIP_DEFLATED) as zipf: for path in WEB_FOLDER.rglob("*"): if path.is_file(): arcname = path.relative_to(WEB_FOLDER.parent) zipf.write(path, arcname) print("✅ Backup complete.")