Created
November 24, 2025 10:34
-
-
Save The-Final-Apex/6c06b73da1cb6b957f6a47545722ea45 to your computer and use it in GitHub Desktop.
Revisions
-
The-Final-Apex created this gist
Nov 24, 2025 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,44 @@ @app.route('/backup') def backup(): # Get current timestamp to avoid overwriting timestamp = datetime.now().strftime('%Y-%m-%d_%H-%M-%S') backup_folder = os.path.join(BACKUP_DIR, f'backup_{timestamp}') print(timestamp, backup_folder) print(BACKUP_DIR) # Create the backup directory os.makedirs(backup_folder, exist_ok=True) # Copy the uploads and instance folders to the backup folder try: shutil.copytree(UPLOADS_FOLDER, os.path.join(backup_folder, 'uploads'), dirs_exist_ok=True) shutil.copytree(INSTANCE_FOLDER, os.path.join(backup_folder, 'instance'), dirs_exist_ok=True) print("succefuly copied files") # Now zip the backup folder zip_filename = f'{backup_folder}.zip' with zipfile.ZipFile(zip_filename, 'w', zipfile.ZIP_DEFLATED) as zipf: print("with staetment") for root, _, files in os.walk(backup_folder): print("first for") for file in files: print("second for") file_path = os.path.join(root, file) print("file path thingy") zipf.write(file_path, os.path.relpath(file_path, backup_folder)) print("last thingy") print(backup_folder) # Clean up (remove the unzipped backup folder) def handle_remove_readonly(func, path, exec_info): os.chmod(path, stat.S_IWRITE) func(path) shutil.rmtree(backup_folder, onerror=handle_remove_readonly) print("removed unzipped folder") return f'Backup created successfully at {zip_filename} on Desktop.' except Exception as e: print(f"an error occured : {e}") return f'An error occurred: {e}'