def reprocess(self, params): mod = BcmlMod.from_json(params["mod"]) rmtree(mod.path / "logs") if (mod.path / "options.json").exists(): options = json.loads((mod.path / "options.json").read_text()) else: options = {} install.generate_logs(mod.path, options)
def _make_bnp_logs(tmp_dir: Path, options: dict): util.vprint(install.generate_logs(tmp_dir, options=options)) print("Removing unnecessary files...") if (tmp_dir / "logs" / "map.yml").exists(): print("Removing map units...") for file in [ file for file in tmp_dir.rglob("**/*.smubin") if fnmatch(file.name, "[A-Z]-[0-9]_*.smubin") and "MainField" in file.parts ]: file.unlink() if set((tmp_dir / "logs").glob("*texts*")): print("Removing language bootup packs...") for bootup_lang in (tmp_dir / util.get_content_path() / "Pack").glob( "Bootup_*.pack" ): bootup_lang.unlink() if (tmp_dir / "logs" / "actorinfo.yml").exists() and ( tmp_dir / util.get_content_path() / "Actor" / "ActorInfo.product.sbyml" ).exists(): print("Removing ActorInfo.product.sbyml...") ( tmp_dir / util.get_content_path() / "Actor" / "ActorInfo.product.sbyml" ).unlink() if (tmp_dir / "logs" / "gamedata.yml").exists() or ( tmp_dir / "logs" / "savedata.yml" ).exists(): print("Removing gamedata sarcs...") bsarc = oead.Sarc( (tmp_dir / util.get_content_path() / "Pack" / "Bootup.pack").read_bytes() ) csarc = oead.SarcWriter.from_sarc(bsarc) bsarc_files = {f.name for f in bsarc.get_files()} if "GameData/gamedata.ssarc" in bsarc_files: del csarc.files["GameData/gamedata.ssarc"] if "GameData/savedataformat.ssarc" in bsarc_files: del csarc.files["GameData/savedataformat.ssarc"] (tmp_dir / util.get_content_path() / "Pack" / "Bootup.pack").write_bytes( csarc.write()[1] )