import zipfile import datetime from pathlib import Path WEB_FOLDER = Path("plots") BACKUP_FOLDER = Path("backups") def create_backup(): """Create a backup of the web folder.""" 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.") if __name__ == "__main__": create_backup()