From edd726ac9fded756be7e27af2f41decd4df00f15 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Thu, 18 May 2017 03:07:32 +0200 Subject: [PATCH] Site upgrade support in clone command --- src/Ui/UiWebsocket.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/Ui/UiWebsocket.py b/src/Ui/UiWebsocket.py index 22680efb..ea65d567 100644 --- a/src/Ui/UiWebsocket.py +++ b/src/Ui/UiWebsocket.py @@ -757,16 +757,24 @@ class UiWebsocket(object): else: self.response(to, {"error": "Unknown site: %s" % address}) - def actionSiteClone(self, to, address, root_inner_path=""): + def actionSiteClone(self, to, address, root_inner_path="", target_address=None): self.cmd("notification", ["info", _["Cloning site..."]]) site = self.server.sites.get(address) - # Generate a new site from user's bip32 seed - new_address, new_address_index, new_site_data = self.user.getNewSiteData() - new_site = site.clone(new_address, new_site_data["privatekey"], address_index=new_address_index, root_inner_path=root_inner_path) - new_site.settings["own"] = True - new_site.saveSettings() - self.cmd("notification", ["done", _["Site cloned"] + "" % new_address]) - gevent.spawn(new_site.announce) + if target_address: + target_site = self.server.sites.get(target_address) + privatekey = self.user.getSiteData(target_site.address).get("privatekey") + site.clone(target_address, privatekey, root_inner_path=root_inner_path) + self.cmd("notification", ["done", _["Site source code upgraded!"]]) + site.publish() + else: + # Generate a new site from user's bip32 seed + new_address, new_address_index, new_site_data = self.user.getNewSiteData() + new_site = site.clone(new_address, new_site_data["privatekey"], address_index=new_address_index, root_inner_path=root_inner_path) + new_site.settings["own"] = True + new_site.saveSettings() + self.cmd("notification", ["done", _["Site cloned"] + "" % new_address]) + gevent.spawn(new_site.announce) + def actionSiteSetLimit(self, to, size_limit): self.site.settings["size_limit"] = int(size_limit)