From d241a43e637a0baa2441beeae7163c6d77c0a483 Mon Sep 17 00:00:00 2001 From: Oleg Korshul Date: Tue, 14 Apr 2020 18:48:16 +0300 Subject: [PATCH] Developing --- configure.py | 1 + make.py | 2 +- scripts/base.py | 55 +++++++++++++++++++++++++++++++++++++-- scripts/deploy_desktop.py | 26 +++++++++--------- scripts/deploy_server.py | 13 +-------- 5 files changed, 68 insertions(+), 29 deletions(-) diff --git a/configure.py b/configure.py index 049b2ae..b282feb 100755 --- a/configure.py +++ b/configure.py @@ -26,6 +26,7 @@ parser.add_option("--branding-url", action="store", type="string", dest="brandin parser.add_option("--sdkjs-addon", action="append", type="string", dest="sdkjs-addons", default=[], help="sdkjs addons") parser.add_option("--server-addon", action="append", type="string", dest="server-addons", default=[], help="server addons") parser.add_option("--web-apps-addon", action="append", type="string", dest="web-apps-addons", default=[], help="web-apps addons") +parser.add_option("--sdkjs-plugin", action="append", type="string", dest="sdkjs-plugin", default=[], help="web-apps addons") (options, args) = parser.parse_args(arguments) configOptions = vars(options) diff --git a/make.py b/make.py index 2adc2f8..45cb087 100755 --- a/make.py +++ b/make.py @@ -46,7 +46,7 @@ if ("1" == config.option("update")): base.git_update("core") base.git_update("sdkjs") base.sdkjs_addons_checkout() - base.git_update("sdkjs-plugins") + base.sdkjs_plugins_checkout() base.git_update("web-apps") base.web_apps_addons_checkout() base.git_update("desktop-sdk") diff --git a/scripts/base.py b/scripts/base.py index acf934b..fd513b7 100644 --- a/scripts/base.py +++ b/scripts/base.py @@ -312,12 +312,14 @@ def set_cwd(dir): return # git --------------------------------------------------- -def git_update(repo, is_no_errors=False): +def git_update(repo, is_no_errors=False, is_current_dir=False): print("[git] update: " + repo) url = "https://github.com/ONLYOFFICE/" + repo + ".git" if config.option("git-protocol") == "ssh": url = "git@github.com:ONLYOFFICE/" + repo + ".git" folder = get_script_dir() + "/../../" + repo + if is_current_dir: + folder = repo is_not_exit = False if not is_dir(folder): retClone = cmd("git", ["clone", url, folder], is_no_errors) @@ -563,6 +565,28 @@ def web_apps_addons_checkout(): git_update(config.web_apps_addons[name], True) return +def sdkjs_plugins_checkout(): + plugins_list_config = config.option("sdkjs-plugin") + if ("" == plugins_list_config): + plugins_list_config = "default" + plugins_list_string = plugins_list_config.replace("default", "photoeditor, macros, ocr, translator, speech, thesaurus, youtube, highlightcode") + if ("" == plugins_list_config): + return + plugins_list = plugins_list_string.rsplit(", ") + plugins_dir = get_script_dir() + "/../../sdkjs-plugins" + if is_dir(plugins_dir + "/.git"): + delete_dir_with_access_error(plugins_dir); + delete_dir(plugins_dir) + if not is_dir(plugins_dir): + create_dir(plugins_dir) + + cur_dir = os.getcwd() + os.chdir(plugins_dir) + for name in plugins_list: + git_update("plugin-" + name, True, True) + os.chdir(cur_dir) + return + def sdkjs_addons_param(): if ("" == config.option("sdkjs-addons")): return [] @@ -772,4 +796,31 @@ def common_check_version(name, good_version, clean_func): delete_file(version_path) writeFile(version_path, version_good) clean_func() - return \ No newline at end of file + return + +def copy_sdkjs_plugin(src_dir, dst_dir, name, is_name_as_guid=False): + src_dir_path = src_dir + "/plugin-" + name + if not is_dir(src_dir_path): + src_dir_path = src_dir + "/" + name + if not is_name_as_guid: + base.copy_dir_content(src_dir_path, dst_dir + "/" + name, "", ".git") + return + config_content = readFile(src_dir_path + "/config.json") + index_start = config_content.find("\"asc.{") + index_start += 5 + index_end = config_content.find(index_start, "}") + guid = config_content[index_start:index_end] + return + +def copy_sdkjs_plugins(dst_dir, is_name_as_guid=False): + plugins_dir = get_script_dir() + "/../../sdkjs-plugins" + plugins_list_config = config.option("sdkjs-plugin") + if ("" == plugins_list_config): + plugins_list_config = "default" + plugins_list_string = plugins_list_config.replace("default", "photoeditor, macros, ocr, translator, speech, thesaurus, youtube, highlightcode") + if ("" == plugins_list_config): + return + plugins_list = plugins_list_string.rsplit(", ") + for name in plugins_list: + copy_sdkjs_plugin(plugins_dir, dst_dir, name, is_name_as_guid) + return \ No newline at end of file diff --git a/scripts/deploy_desktop.py b/scripts/deploy_desktop.py index c4d8afb..af2db87 100644 --- a/scripts/deploy_desktop.py +++ b/scripts/deploy_desktop.py @@ -162,27 +162,25 @@ def make(): base.copy_dir(git_dir + "/desktop-sdk/ChromiumBasedEditors/resources/local", root_dir + "/editors/sdkjs/common/Images/local") base.create_dir(root_dir + "/editors/sdkjs-plugins") - base.copy_file(git_dir + "/sdkjs-plugins/LICENSE.txt", root_dir + "/editors/sdkjs-plugins/LICENSE.txt") - base.copy_file(git_dir + "/sdkjs-plugins/README.md", root_dir + "/editors/sdkjs-plugins/README.md") - base.copy_file(git_dir + "/sdkjs-plugins/plugins.css", root_dir + "/editors/sdkjs-plugins/plugins.css") - base.copy_file(git_dir + "/sdkjs-plugins/pluginBase.js", root_dir + "/editors/sdkjs-plugins/pluginBase.js") + base.copy_sdkjs_plugins(root_dir + "/editors/sdkjs-plugins", True) + # remove some default plugins + if base.is_dir(root_dir + "/editors/sdkjs-plugins/speech") + base.delete_dir(root_dir + "/editors/sdkjs-plugins/speech") - base.copy_dir(git_dir + "/sdkjs-plugins/youtube", root_dir + "/editors/sdkjs-plugins/{38E022EA-AD92-45FC-B22B-49DF39746DB4}") - base.copy_dir(git_dir + "/sdkjs-plugins/ocr", root_dir + "/editors/sdkjs-plugins/{440EBF13-9B19-4BD8-8621-05200E58140B}") - base.copy_dir(git_dir + "/sdkjs-plugins/translate", root_dir + "/editors/sdkjs-plugins/{7327FC95-16DA-41D9-9AF2-0E7F449F687D}") - base.copy_dir(git_dir + "/sdkjs-plugins/synonim", root_dir + "/editors/sdkjs-plugins/{BE5CBF95-C0AD-4842-B157-AC40FEDD9840}") - base.copy_dir(git_dir + "/sdkjs-plugins/code", root_dir + "/editors/sdkjs-plugins/{BE5CBF95-C0AD-4842-B157-AC40FEDD9841}") - base.copy_dir(git_dir + "/sdkjs-plugins/photoeditor", root_dir + "/editors/sdkjs-plugins/{07FD8DFA-DFE0-4089-AL24-0730933CC80A}") - base.copy_dir(git_dir + "/sdkjs-plugins/macros", root_dir + "/editors/sdkjs-plugins/{E6978D28-0441-4BD7-8346-82FAD68BCA3B}") + # io + base.create_dir(root_dir + "/editors/sdkjs-plugins/v1") + base.download("https://onlyoffice.github.io/sdkjs-plugins/v1/plugins.js", root_dir + "/editors/sdkjs-plugins/v1/plugins.js") + base.download("https://onlyoffice.github.io/sdkjs-plugins/v1/plugins-ui.js", root_dir + "/editors/sdkjs-plugins/v1/plugins-ui.js") + base.download("https://onlyoffice.github.io/sdkjs-plugins/v1/plugins.css", root_dir + "/editors/sdkjs-plugins/v1/plugins.css") base.copy_dir(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/{8D67F3C5-7736-4BAE-A0F2-8C7127DC4BB8}", root_dir + "/editors/sdkjs-plugins/{8D67F3C5-7736-4BAE-A0F2-8C7127DC4BB8}") #base.copy_dir(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/encrypt/ui/common/{14A8FC87-8E26-4216-B34E-F27F053B2EC4}", root_dir + "/editors/sdkjs-plugins/{14A8FC87-8E26-4216-B34E-F27F053B2EC4}") #base.copy_dir(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/encrypt/ui/engine/database/{9AB4BBA8-A7E5-48D5-B683-ECE76A020BB1}", root_dir + "/editors/sdkjs-plugins/{9AB4BBA8-A7E5-48D5-B683-ECE76A020BB1}") if (0 != platform.find("mac")): - base.copy_dir(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/{060E6A7D-2766-44E8-A0EE-9A8CB9DB00D1}", root_dir + "/editors/sdkjs-plugins/{060E6A7D-2766-44E8-A0EE-9A8CB9DB00D1}") - base.copy_dir(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/{B509123E-6335-40BD-B965-91EB799346E3}", root_dir + "/editors/sdkjs-plugins/{B509123E-6335-40BD-B965-91EB799346E3}") - base.copy_dir(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/{F7E59EB4-317E-4E0B-AB2C-58E038A59EE2}", root_dir + "/editors/sdkjs-plugins/{F7E59EB4-317E-4E0B-AB2C-58E038A59EE2}") + base.copy_sdkjs_plugin(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins", root_dir + "/editors/sdkjs-plugins", "audio", True) + base.copy_sdkjs_plugin(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins", root_dir + "/editors/sdkjs-plugins", "video", True) + base.copy_sdkjs_plugin(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins", root_dir + "/editors/sdkjs-plugins", "sendto", True) base.copy_file(base_dir + "/js/" + branding + "/desktop/index.html", root_dir + "/index.html") base.copy_file(git_dir + "/desktop-apps/common/loginpage/addon/externalcloud.json", root_dir + "/editors/externalcloud.json") diff --git a/scripts/deploy_server.py b/scripts/deploy_server.py index c41b91a..6557ba6 100644 --- a/scripts/deploy_server.py +++ b/scripts/deploy_server.py @@ -125,18 +125,7 @@ def make(): # plugins base.create_dir(js_dir + "/sdkjs-plugins") - - # base.copy_dir(plugins_dir + "/clipart", js_dir + "/sdkjs-plugins/clipart") - base.copy_dir(plugins_dir + "/code", js_dir + "/sdkjs-plugins/code") - base.copy_dir(plugins_dir + "/macros", js_dir + "/sdkjs-plugins/macros") - base.copy_dir(plugins_dir + "/ocr", js_dir + "/sdkjs-plugins/ocr") - base.copy_dir(plugins_dir + "/photoeditor", js_dir + "/sdkjs-plugins/photoeditor") - base.copy_dir(plugins_dir + "/speech", js_dir + "/sdkjs-plugins/speech") - base.copy_dir(plugins_dir + "/synonim", js_dir + "/sdkjs-plugins/synonim") - base.copy_dir(plugins_dir + "/translate", js_dir + "/sdkjs-plugins/translate") - base.copy_dir(plugins_dir + "/youtube", js_dir + "/sdkjs-plugins/youtube") - base.copy_file(plugins_dir + "/pluginBase.js", js_dir + "/sdkjs-plugins/pluginBase.js") - base.copy_file(plugins_dir + "/plugins.css", js_dir + "/sdkjs-plugins/plugins.css") + base.copy_sdkjs_plugins(js_dir + "/sdkjs-plugins") # tools tools_dir = root_dir + "/server/tools"