From 9cafae9d536cf6217cd830d2035df76d3d9dffd1 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Sat, 20 Jul 2019 20:33:50 +0530 Subject: [PATCH 1/4] fix: Check if site exists before new-site --- frappe/commands/site.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frappe/commands/site.py b/frappe/commands/site.py index 3d71461739..853532a87f 100755 --- a/frappe/commands/site.py +++ b/frappe/commands/site.py @@ -40,6 +40,10 @@ def _new_site(db_name, site, mariadb_root_username=None, mariadb_root_password=N reinstall=False, db_type=None): """Install a new Frappe site""" + if os.path.exists(site): + print('Site {0} already exists'.format(site)) + sys.exit(1) + if not db_name: db_name = '_' + hashlib.sha1(site.encode()).hexdigest()[:16] From 8dcfe0029dd0d3da92f2eba4d39e6acd43fd8f87 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Sat, 20 Jul 2019 20:35:36 +0530 Subject: [PATCH 2/4] feat: add-to-hosts command --- frappe/commands/site.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/frappe/commands/site.py b/frappe/commands/site.py index 853532a87f..53e71ef48f 100755 --- a/frappe/commands/site.py +++ b/frappe/commands/site.py @@ -281,6 +281,12 @@ def reload_doctype(context, doctype): finally: frappe.destroy() +@click.command('add-to-hosts') +@pass_context +def add_to_hosts(context): + "Add site to hosts" + for site in context.sites: + frappe.commands.popen('echo 127.0.0.1\t{0} | sudo tee -a /etc/hosts'.format(site)) @click.command('use') @click.argument('site') @@ -615,4 +621,5 @@ commands = [ browse, start_recording, stop_recording, + add_to_hosts ] From 00e7a6a779cb4de7ad913a80160b7d7e8dffd1ed Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Sat, 20 Jul 2019 20:41:43 +0530 Subject: [PATCH 3/4] fix: Add no-backup option in drop-site --- frappe/commands/site.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/frappe/commands/site.py b/frappe/commands/site.py index 53e71ef48f..4310dc4251 100755 --- a/frappe/commands/site.py +++ b/frappe/commands/site.py @@ -358,12 +358,13 @@ def uninstall(context, app, dry_run=False, yes=False): @click.option('--root-login', default='root') @click.option('--root-password') @click.option('--archived-sites-path') +@click.option('--no-backup', is_flag=True, default=False) @click.option('--force', help='Force drop-site even if an error is encountered', is_flag=True, default=False) -def drop_site(site, root_login='root', root_password=None, archived_sites_path=None, force=False): - _drop_site(site, root_login, root_password, archived_sites_path, force) +def drop_site(site, root_login='root', root_password=None, archived_sites_path=None, force=False, no_backup=False): + _drop_site(site, root_login, root_password, archived_sites_path, force, no_backup) -def _drop_site(site, root_login='root', root_password=None, archived_sites_path=None, force=False): +def _drop_site(site, root_login='root', root_password=None, archived_sites_path=None, force=False, no_backup=False): "Remove site from database and filesystem" from frappe.database import drop_user_and_database from frappe.utils.backups import scheduled_backup @@ -372,7 +373,8 @@ def _drop_site(site, root_login='root', root_password=None, archived_sites_path= frappe.connect() try: - scheduled_backup(ignore_files=False, force=True) + if not no_backup: + scheduled_backup(ignore_files=False, force=True) except Exception as err: if force: pass From da3811ab8e0f2b9a2e144b3195814fde127370fa Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Sat, 20 Jul 2019 20:49:06 +0530 Subject: [PATCH 4/4] fix: Dont check if force --- frappe/commands/site.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/commands/site.py b/frappe/commands/site.py index 4310dc4251..0eb6a36098 100755 --- a/frappe/commands/site.py +++ b/frappe/commands/site.py @@ -40,7 +40,7 @@ def _new_site(db_name, site, mariadb_root_username=None, mariadb_root_password=N reinstall=False, db_type=None): """Install a new Frappe site""" - if os.path.exists(site): + if not force and os.path.exists(site): print('Site {0} already exists'.format(site)) sys.exit(1)