import os import shutil import javaproperties from scripts.task import Task from utils import FileUtils from utils.logger_utils import app_logger class ProjectUpdateConfig(Task): def update_config(self): if not self.context.update_config: app_logger().info("配置文件没有更新") return """ 更新配置文件 :return: """ target_path = self.context.config_path dst = os.path.join(self.context.temp_project_path, os.path.basename(target_path).replace(".zip", "")) if not self.context.update_config: app_logger().info("No update config found") with open(os.path.join(dst, "tkg_config_mainly.properties"), 'rb') as f: self.context.config = javaproperties.load(f) # 不打admob if self.context.admob_app_id is None or self.context.admob_app_id == "": self.context.admob_app_id = self.context.get_config("admob_id") return if os.path.exists(dst): shutil.rmtree(dst) result = FileUtils.decompress(target_path, dst) app_logger().debug(f"{target_path} -> {dst} , 解压结果: {result}") mainly_path = os.path.join(dst, "mainly") if not os.path.exists(mainly_path): mainly_path = os.path.join(dst, "appConfig") google_services_json_path = os.path.join(dst, "google-services.json") if not os.path.exists(google_services_json_path): google_services_json_path = os.path.join(dst, "appConfig", "google-services.json") FileUtils.copy(google_services_json_path, os.path.join(self.context.temp_project_path, "google-services.json"), True) dst_path = os.path.join(self.context.temp_project_path, f"launcher-game{os.sep}assets") for file in list(filter(lambda f: not (f == "google_fonts.json" or f == "pag_gl_slide.pag"), os.listdir(dst_path))): FileUtils.delete(os.path.join(dst_path, file), True) pass for file in list(filter(lambda f: f.find(".") <= 0, os.listdir(mainly_path))): FileUtils.copy(os.path.join(mainly_path, file), os.path.join(dst_path, file), True) pass def execute(self): self.update_config() self.context.save_cache_config("config", self.context.config_config_md5) pass