From 11f1b3f00dee460e66f57972e843b71b765d8e9c Mon Sep 17 00:00:00 2001 From: Pratik Vyas Date: Tue, 22 Apr 2014 13:44:33 +0530 Subject: [PATCH] can now select destination for boilerplate --- frappe/cli.py | 6 ++--- frappe/utils/boilerplate.py | 52 ++++++++++++++++++------------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/frappe/cli.py b/frappe/cli.py index 9acef68763..f1fd7ba5f3 100755 --- a/frappe/cli.py +++ b/frappe/cli.py @@ -124,7 +124,7 @@ def setup_parser(): return parser.parse_args() def setup_install(parser): - parser.add_argument("--make_app", default=False, action="store_true", + parser.add_argument("--make_app", metavar="DEST", nargs=1, help="Make a new application with boilerplate") parser.add_argument("--install", metavar="DB-NAME", nargs=1, help="Install a new db") @@ -261,9 +261,9 @@ def setup_translation(parser): # methods @cmd -def make_app(): +def make_app(destination): from frappe.utils.boilerplate import make_boilerplate - make_boilerplate() + make_boilerplate(destination) @cmd def use(sites_path): diff --git a/frappe/utils/boilerplate.py b/frappe/utils/boilerplate.py index 32b6953b14..f58a0f2e69 100644 --- a/frappe/utils/boilerplate.py +++ b/frappe/utils/boilerplate.py @@ -6,9 +6,9 @@ from __future__ import unicode_literals import frappe, os from frappe.utils import touch_file -def make_boilerplate(): - if not os.path.exists("sites"): - print "Run from bench! (sites folder must exist)" +def make_boilerplate(dest): + if not os.path.exists(dest): + print "Destination directory does not exist" return hooks = frappe._dict() @@ -24,52 +24,52 @@ def make_boilerplate(): hooks[hook_key] = hook_val - frappe.create_folder(os.path.join(hooks.app_name, hooks.app_name, hooks.app_name)) - frappe.create_folder(os.path.join(hooks.app_name, hooks.app_name, "templates")) - frappe.create_folder(os.path.join(hooks.app_name, hooks.app_name, "templates", + frappe.create_folder(os.path.join(dest, hooks.app_name, hooks.app_name, hooks.app_name)) + frappe.create_folder(os.path.join(dest, hooks.app_name, hooks.app_name, "templates")) + frappe.create_folder(os.path.join(dest, hooks.app_name, hooks.app_name, "templates", "statics")) - frappe.create_folder(os.path.join(hooks.app_name, hooks.app_name, "templates", + frappe.create_folder(os.path.join(dest, hooks.app_name, hooks.app_name, "templates", "pages")) - frappe.create_folder(os.path.join(hooks.app_name, hooks.app_name, "templates", + frappe.create_folder(os.path.join(dest, hooks.app_name, hooks.app_name, "templates", "generators")) - frappe.create_folder(os.path.join(hooks.app_name, hooks.app_name, "config")) + frappe.create_folder(os.path.join(dest, hooks.app_name, hooks.app_name, "config")) # init files - touch_file(os.path.join(hooks.app_name, hooks.app_name, "__init__.py")) - touch_file(os.path.join(hooks.app_name, hooks.app_name, hooks.app_name, "__init__.py")) - touch_file(os.path.join(hooks.app_name, hooks.app_name, "templates", "__init__.py")) - touch_file(os.path.join(hooks.app_name, hooks.app_name, "templates", + touch_file(os.path.join(dest, hooks.app_name, hooks.app_name, "__init__.py")) + touch_file(os.path.join(dest, hooks.app_name, hooks.app_name, hooks.app_name, "__init__.py")) + touch_file(os.path.join(dest, hooks.app_name, hooks.app_name, "templates", "__init__.py")) + touch_file(os.path.join(dest, hooks.app_name, hooks.app_name, "templates", "pages", "__init__.py")) - touch_file(os.path.join(hooks.app_name, hooks.app_name, "templates", + touch_file(os.path.join(dest, hooks.app_name, hooks.app_name, "templates", "generators", "__init__.py")) - touch_file(os.path.join(hooks.app_name, hooks.app_name, "config", "__init__.py")) + touch_file(os.path.join(dest, hooks.app_name, hooks.app_name, "config", "__init__.py")) - with open(os.path.join(hooks.app_name, "MANIFEST.in"), "w") as f: + with open(os.path.join(dest, hooks.app_name, "MANIFEST.in"), "w") as f: f.write(manifest_template.format(**hooks)) - with open(os.path.join(hooks.app_name, ".gitignore"), "w") as f: + with open(os.path.join(dest, hooks.app_name, ".gitignore"), "w") as f: f.write(gitignore_template) - with open(os.path.join(hooks.app_name, "setup.py"), "w") as f: + with open(os.path.join(dest, hooks.app_name, "setup.py"), "w") as f: f.write(setup_template.format(**hooks)) - with open(os.path.join(hooks.app_name, "requirements.txt"), "w") as f: + with open(os.path.join(dest, hooks.app_name, "requirements.txt"), "w") as f: f.write("frappe") - touch_file(os.path.join(hooks.app_name, "README.md")) + touch_file(os.path.join(dest, hooks.app_name, "README.md")) - with open(os.path.join(hooks.app_name, "license.txt"), "w") as f: + with open(os.path.join(dest, hooks.app_name, "license.txt"), "w") as f: f.write("License: " + hooks.app_license) - with open(os.path.join(hooks.app_name, hooks.app_name, "modules.txt"), "w") as f: + with open(os.path.join(dest, hooks.app_name, hooks.app_name, "modules.txt"), "w") as f: f.write(hooks.app_name) - with open(os.path.join(hooks.app_name, hooks.app_name, "hooks.txt"), "w") as f: + with open(os.path.join(dest, hooks.app_name, hooks.app_name, "hooks.txt"), "w") as f: f.write(hooks_template.format(**hooks)) - touch_file(os.path.join(hooks.app_name, hooks.app_name, "patches.txt")) + touch_file(os.path.join(dest, hooks.app_name, hooks.app_name, "patches.txt")) - with open(os.path.join(hooks.app_name, hooks.app_name, "config", "desktop.py"), "w") as f: + with open(os.path.join(dest, hooks.app_name, hooks.app_name, "config", "desktop.py"), "w") as f: f.write(desktop_template.format(**hooks)) @@ -138,4 +138,4 @@ gitignore_template = """.DS_Store *.pyc *.egg-info *.swp -tags""" \ No newline at end of file +tags"""