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)
Beispiel #2
0
 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))
Beispiel #3
0
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")
Beispiel #5
0
    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
Beispiel #6
0
    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)
Beispiel #7
0
 def __str__(self):
   return log.title(self.title) + '\n\n' + str(self.summary()) + '\n'