def update_acpi(): log.title("Updating acpi folder...") # IASL for DSL files process exec_file['iasl'] = acpi.download_iasl("{}/iasl".format(tmp_folder)) tools.perm_exec(exec_file['iasl']) # Convert all dsl to aml patches = acpi.convert_and_get_patches(exec_file["iasl"], conf_folder, tmp_folder)
def __init__(self, file: str): self.file = pathlib.Path(file).absolute() with open(file, 'rb') as f: self.plist = plistlib.load(f) if 'Boot' in self.plist: # clover self.type = 'clover' self.keywords = config.conf["clover_dict"] else: self.type = 'oc' self.keywords = config.conf["opencore_dict"] log.title("Init {} plist file".format(self.type))
def convert_and_get_patches(iasl_path: str, conf_folder: str, target_folder: str) -> []: patches = [] if os.path.exists("{}/acpi".format(conf_folder)): for dsl in pathlib.Path("{}/acpi".format(conf_folder)).rglob("*.dsl"): tools.convert_dsl_to_aml(iasl_path, dsl) patches = patches + tools.dsl_to_patch_list(dsl) for aml in pathlib.Path("{}/acpi".format(conf_folder)).rglob("*.aml"): shutil.move( aml, "{}/acpi/{}".format(target_folder, os.path.basename(aml))) log.title("Convert DSL to AML done.") log.title("Found {} patches.".format(len(patches))) for patch in patches: log.sub(patch["Comment"]) return patches
def init_project(): # Int tmp folder log.title("Checking project...") if os.path.exists(tmp_folder) is False: log.sub("New project, create tmp folder...") os.mkdir(tmp_folder) os.mkdir("{}/acpi".format(tmp_folder)) os.mkdir("{}/kexts".format(tmp_folder)) os.mkdir("{}/oc".format(tmp_folder)) os.mkdir("{}/clover".format(tmp_folder)) shutil.copy("{}/opencore/config.plist".format(conf_folder), "{}/oc/config.plist".format(tmp_folder)) shutil.copy("{}/clover/config.plist".format(conf_folder), "{}/clover/config.plist".format(tmp_folder)) else: log.sub("Found project, bypass init project")
def copy(self, another): """Copy config from an another config plist file Args: another (Plist): An Plist file Returns: Plist: return current config file """ if self.type == another.type: log.title('Replace everything from', another.file, '\nExcept:') for key in self.keywords.values(): value = self.get_key_value(key, True) another.set(key, value) print('{}={}'.format(key, value)) self.plist = another.plist else: log.title('Replace following fields from', another.file) for k in self.keywords.keys(): i1, k1 = self.get_key_value(self.keywords[k]) value = another.get(another.keywords[k]) print('Set {} to {}'.format(k1, value)) i1[k1] = value return self
def __str__(self): queued = [] for packet in self.queue: queued.append(packet.id) destinations = [] for neighbour in self.neighbours: destinations.append(neighbour.id) lines = ["", log.title("- NODE {} -".format(self.id), "magenta"), "x = {}".format(self.x), "y = {}".format(self.y), "neighbours = {}".format(destinations), "queue = {}".format(queued), " ".join(["sending =", settings.PRECISION, "s(abs)"]).format(self.sending_until), " ".join(["receiving =", settings.PRECISION, "s(abs)"]).format(self.receiving_until), "lost = {}".format(self.packets_lost), "sent = {}".format(self.packets_sent), "received = {}".format(self.packets_received), "collided = {}".format(self.packets_collided)] return "\n".join(lines)
def __str__(self): return log.title(self.title) + '\n\n' + str(self.summary()) + '\n'