From 548deacee9df27402a734ad0245decb519ce7292 Mon Sep 17 00:00:00 2001 From: Abdeali Chharchhodawala Date: Tue, 7 May 2024 20:41:38 +0530 Subject: [PATCH] fix: read apps from apps.txt --- bench/app.py | 9 +++++++++ bench/bench.py | 19 +++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/bench/app.py b/bench/app.py index a4b3dc748..12f491edd 100755 --- a/bench/app.py +++ b/bench/app.py @@ -421,6 +421,13 @@ def prune_app_directory(self): remove_unused_node_modules(app_path) +def add_to_appstxt(installed_apps, app, bench_path="."): + if app not in installed_apps: + installed_apps.append(app) + with open(os.path.join(bench_path, "sites", "apps.txt"), "w") as f: + f.write("\n".join(installed_apps)) + + def coerce_url_to_name_if_possible(git_url: str, cache_key: str) -> str: app_name = os.path.basename(git_url) if can_get_cached(app_name, cache_key): @@ -911,6 +918,8 @@ def install_app( yarn_install += " --verbose" bench.run(yarn_install, cwd=app_path) + add_to_appstxt(installed_apps=bench.apps.apps, app=app, bench_path=bench_path) + bench.apps.sync(app_name=app, required=resolution, branch=tag, app_dir=app_path) if not skip_assets: diff --git a/bench/bench.py b/bench/bench.py index 0b0c7af77..c5e0ba8d8 100644 --- a/bench/bench.py +++ b/bench/bench.py @@ -62,13 +62,13 @@ def __init__(self, path): self.cwd = os.path.abspath(path) self.exists = is_bench_directory(self.name) + self.apps_txt = os.path.join(self.name, "sites", "apps.txt") + self.excluded_apps_txt = os.path.join(self.name, "sites", "excluded_apps.txt") + self.setup = BenchSetup(self) self.teardown = BenchTearDown(self) self.apps = BenchApps(self) - self.apps_txt = os.path.join(self.name, "sites", "apps.txt") - self.excluded_apps_txt = os.path.join(self.name, "sites", "excluded_apps.txt") - @property def python(self) -> str: return get_env_cmd("python", bench_path=self.name) @@ -274,11 +274,14 @@ def sync( def initialize_apps(self): try: - self.apps = [ - x - for x in os.listdir(os.path.join(self.bench.name, "apps")) - if is_frappe_app(os.path.join(self.bench.name, "apps", x)) - ] + with open(self.bench.apps_txt) as f: + self.apps = [ + app.strip() + for app in f.read().splitlines() + if len(app) > 0 and is_frappe_app(os.path.join(self.bench.name, "apps", app)) + ] + + # FIXME: can be remove self.apps.remove("frappe") self.apps.insert(0, "frappe") except FileNotFoundError: