from audioop import add from lib import * import pm version = "v0.3.1 Dev" edition = "Server" static_path = os.getcwd() config = Data.config_data class Deploy: def overview(): overviewhtml = File.read("./default/overview.html") writepath = "overview.html" size = str(round(round(Path.getdirsize("./files/") / 1024, 3) / 1024, 3)) + " MB" #GB File.rewrite(writepath, overviewhtml) File.replace(writepath, "$title", config["title"]) File.replace(writepath, "$used_space", size) File.replace(writepath, "$os_edition", System.os_edition) File.replace(writepath, "$cpu_version", System.processor_numbers) File.replace(writepath, "$local_time", System.local_time) File.replace(writepath, "$python_version", System.python_version) File.replace(writepath, "$sfis_version", version) File.replace(writepath, "$copyright", "
  • © " + System.year + " " + config["owner"] + "
  • ") if config["about"] == True: File.replace(writepath, "$about", "
  • SFIS Project
  • ") def create(one): createhtml = File.read("./default/create.html") os.chdir(one) abspath = Path.abs(".") writepath = abspath filelist = Path.ls(".", "file") folderlist = Path.ls(".", "folder") alllist = "" print("ok") for one in folderlist: alllist = alllist + "
    " + one + "/" for one in filelist: #TODO(hide some files) print("ok") alllist = alllist + "
    " + one + "" File.rewrite(writepath, createhtml) File.replace(writepath, "$title", config["title"]) File.replace(writepath, "$path", Path.contrast(os.getcwd(), static_path)) File.replace(writepath, "$list", alllist) if os.path.exists("README.md") and os.path.isfile("README.md") and config["preview_readme_md"] == True: readmemd = File.md2html("README.md") File.replace(writepath, "$readme", readmemd) else: File.replace(writepath, "$readme", "Nothing Here") File.replace(writepath, "$ad", config["ad_code"]) File.replace(writepath, "$copyright", "
  • © " + System.year + " " + config["owner"] + "
  • ") if config["about"] == True: File.replace(writepath, "$about", "
  • Based on SFIS Project
  • ") if config["compress_html"] == True: File.rewrite(writepath,File.htmlmin(File.read(writepath))) os.chdir(static_path) def welcome(): welcomehtml = File.read("./default/welcome.html") writepath = "index.html" File.rewrite(writepath, welcomehtml) File.replace(writepath, "$title", config["title"]) File.replace(writepath, "$owner", config["owner"]) File.replace(writepath, "$email", config["email"]) File.replace(writepath, "$ad", config["ad_code"]) File.replace(writepath, "$copyright", "
  • © " + System.year + " " + config["owner"] + "
  • ") if config["about"] == True: File.replace("index.html", "$about", "
  • SFIS Project
  • ") class Function: class pkg: "Manage Addon Packages of your SFIS container" def install(self, package_name, package_version="latest", package_source="https://store.sfis.imwangzhiyu.ga/"): "Install ONE package for your SFIS container" pm.install(package_name, package_version, package_source) def remove(self, package_name): "Remove ONE package from your SFIS container" pm.remove(package_name) def _disenable(self, addon_name): "Diaenable addons" pm.disenable(addon_name) def _enable(self, addon_name): "Enable addons" pm.enable(addon_name) def list(self, mode="offline", source="https://store.sfis.imwangzhiyu.ga"): "List addons" pm.list(mode, source) def run(self, cmd): '''Run advanced built-in python commands''' print("Start") exec(cmd) def _reset(self): '''Reset and initialize your SFIS container''' defaultconfig = b'IyBFZGl0IHRoaXMgZmlsZSB0byBjb25maWd1cmUgU0ZJUwojIERPIE5PVCBERUxFVEUgVEhJUyBGSUxFCgojIFlvdXIgSW5mbWF0aW9uCnRpdGxlOiAiTXkgU0ZJUyBDb250YWluZXIiICMgWW91ciBTaXRlJ3MgVGl0bGUoc3VjaCBhcyAiTXkgQm94IiBvciAiVG9tJ3MgU0ZJUyBDb250YWluZXIiKQpvd25lcjogIkRhdmlkIEFqYXgiICMgeW91ciBuYW1lCmVtYWlsOiAiZGF2aWQtYWpheEBvdXRsb29rLmNvbSIgIyB5b3VyIGVtYWlsKGp1c3Qgd3JpdGUgb25lKQphZF9jb2RlOiAiIiAjIHdyaXRlIHlvdXIgYWQgY29kZSBpbiB0aGUgaW5kZXggcGFnZQoKIyBDb25maWd1cmUgU0ZJUwphYm91dDogVHJ1ZSAjIHNob3cgIkJhc2VkIG9uIFNGSVMiCmNvbXByZXNzX2h0bWw6IFRydWUgIyBDb21wcmVzcyBIVE1MIGZvciBhIGJldHRlciBsb2FkaW5nIGV4cGVyaWVuY2UsIGJ1dCBpdCBzbG93cyBkb3duIGRlcGxveW1lbnQKcHJldmlld19yZWFkbWVfbWQ6IFRydWUgIyBwcmV2aWV3IFJFQURNRS5tZCBpbiBpbmRleC5odG1s' os.mkdir("files") os.mkdir("tree") print("Initializment successful") def deploy(self): '''Deploy SFIS container under deployment path''' Deploy.welcome() src_path = ["files"] deploy_path = [] for one in Path.tree("files", "folder"): src_path.append(one) os.makedirs("tree" + one[5:],exist_ok=True) deploy_path.append("tree" + one[5:]) for one in deploy_path: Deploy.create(one) print("ok2") Deploy.overview() print("Deployment successful") def purge(self): '''Delete files generated by the deployer''' try: os.remove("index.html") os.remove("overview.html") path = ["tree"] for one in Path.tree("tree", "folder"): path.append(one) for one in path: os.chdir(one) os.remove("index.html") os.chdir(static_path) except: pass else: print("Removment successful") def version(self): '''Print version information''' print("SFIS " + edition + " " + version) if __name__ == "__main__": fire.Fire(Function)