Skip to content

Commit

Permalink
fix: Patch to move archived_sites to archived/sites
Browse files Browse the repository at this point in the history
This patch runs only if Frappe >= v14. Doesn't do anything else

Frappe PR: frappe/frappe#15060
  • Loading branch information
gavindsouza committed Nov 26, 2021
1 parent b7994e2 commit 877e812
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 1 deletion.
3 changes: 2 additions & 1 deletion bench/patches/patches.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ bench.patches.v4.update_socketio
bench.patches.v4.install_yarn #2
bench.patches.v5.fix_user_permissions
bench.patches.v5.fix_backup_cronjob
bench.patches.v5.set_live_reload_config
bench.patches.v5.set_live_reload_config
bench.patches.v5.update_archived_sites
51 changes: 51 additions & 0 deletions bench/patches/v5/update_archived_sites.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
"""
Deprecate archived_sites folder for consistency. This change is
only for Frappe v14 benches. If not a v14 bench yet, skip this
patch and try again later.
1. Rename folder `./archived_sites` to `./archived/sites`
2. Create a symlink `./archived_sites` => `./archived/sites`
Corresponding changes in frappe/frappe via https://github.com/frappe/frappe/pull/15060
"""
import os
import shutil
from pathlib import Path

import click
from bench.utils.app import get_current_version
from semantic_version import Version


def execute(bench_path):
frappe_version = Version(get_current_version('frappe'))

if frappe_version.major < 14 or os.name != "posix":
# Returning False means patch has been skipped
return False

pre_patch_dir = os.getcwd()
old_directory = Path(bench_path, "archived_sites")
new_directory = Path(bench_path, "archived", "sites")

if old_directory.is_symlink():
return True

os.chdir(bench_path)

if not os.path.exists(new_directory):
os.makedirs(new_directory)

for archived_site_path in old_directory.glob("*"):
shutil.move(archived_site_path, new_directory)

click.secho(f"Archived sites are now stored under {new_directory}")

if not os.listdir(old_directory):
os.rmdir(old_directory)

os.symlink(new_directory, old_directory)

click.secho(f"Symlink {old_directory} that points to {new_directory}")

os.chdir(pre_patch_dir)

0 comments on commit 877e812

Please sign in to comment.