From ec1f2fbfcfb1582440a377fc90739bd61d077aef Mon Sep 17 00:00:00 2001 From: Pratik Vyas Date: Tue, 18 Feb 2014 16:55:09 +0530 Subject: [PATCH] fix site arg handling --- frappe/__init__.py | 7 ++++--- frappe/cli.py | 31 ++++++++++++++----------------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index 856123a9f2..2ca2367d99 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -402,9 +402,10 @@ def get_pymodule_path(modulename, *joins): def get_module_list(app_name): return get_file_items(os.path.join(os.path.dirname(get_module(app_name).__file__), "modules.txt")) -def get_all_apps(with_frappe=False): - apps = get_file_items(os.path.join(local.sites_path, "apps.txt")) \ - + get_file_items(os.path.join(local.site_path, "apps.txt")) +def get_all_apps(with_frappe=False, with_internal_apps=True): + apps = get_file_items(os.path.join(local.sites_path, "apps.txt")) + if with_internal_apps: + apps.extend(get_file_items(os.path.join(local.site_path, "apps.txt"))) if with_frappe: apps.insert(0, 'frappe') return apps diff --git a/frappe/cli.py b/frappe/cli.py index 79e95711d0..c7e016ed89 100755 --- a/frappe/cli.py +++ b/frappe/cli.py @@ -8,7 +8,14 @@ import sys, os import frappe -site_arg_optional = [] +site_arg_optional = ['serve'] + +def get_site(parsed_args): + if not parsed_args.get("site") and os.path.exists(os.path.join(parsed_args["sites_path"], "currentsite.txt")): + with open(os.path.join(parsed_args["sites_path"], "currentsite.txt"), "r") as sitefile: + parsed_args["site"] = sitefile.read().strip() + return parsed_args["site"] + return parsed_args.get("site") def main(): parsed_args = frappe._dict(vars(setup_parser())) @@ -28,21 +35,11 @@ def main(): frappe.init(site, sites_path=sites_path) run(fn, args) else: - if not fn in site_arg_optional: - if not parsed_args.get("site") and os.path.exists(os.path.join(sites_path, "currentsite.txt")): - with open(os.path.join(sites_path, "currentsite.txt"), "r") as sitefile: - parsed_args["site"] = sitefile.read().strip() - - site = parsed_args.get("site") - - if not site: - print "Site argument required" - exit(1) - - if fn != 'install' and not os.path.exists(os.path.join(parsed_args["sites_path"], site)): - print "Did not find folder '{}'. Are you in sites folder?".format(parsed_args.get("site")) - exit(1) - + site = get_site(parsed_args) + if fn not in site_arg_optional and not site: + print 'site argument required' + exit(1) + elif site: frappe.init(site, sites_path=sites_path) run(fn, parsed_args) else: @@ -639,7 +636,7 @@ def run_tests(app=None, module=None, doctype=None, verbose=False): exit(1) @cmd -def serve(port=8000, profile=False, sites_path='.'): +def serve(port=8000, profile=False, sites_path='.', site=None): import frappe.app frappe.app.serve(port=port, profile=profile, site=frappe.local.site, sites_path=sites_path)