Beispiel #1
0
def uninstall_mod(sim_folder, mod_folder, enabled, update_func=None):
    """Uninstalls a mod."""
    logger.debug("Uninstalling mod {}".format(mod_folder))
    # delete folder
    files.delete_folder(get_mod_folder(sim_folder, mod_folder, enabled),
                        update_func=update_func)
    return True
Beispiel #2
0
    def get_mods(self, folders, enabled, progress_func=None, start=0):
        """Returns data a list of mod folders."""

        mods = []
        errors = []

        for i, folder in enumerate(folders):
            if progress_func:
                progress_func(
                    "Loading mods: {}".format(folder),
                    start + i,
                    start + len(folders) - 1,
                )

            try:
                if not os.listdir(folder):
                    # if the mod folder is completely empty, just delete it
                    files.delete_folder(folder)
                    continue
            except FileNotFoundError:
                # in the case of a broken symlink, this will trigger an error
                # unfortuantely, a os.path.exists or isdir will return true
                files.delete_symlink(folder)
                continue

            # parse each mod
            try:
                mods.append(self.parse_mod_manifest(folder, enabled=enabled))
            except (NoManifestError, ManifestError):
                errors.append(folder)

        return mods, errors
Beispiel #3
0
    def get_mods(
        self,
        folders: list,
        enabled: bool,
        progress_func: Callable = None,
        start: int = 0,
    ) -> Tuple[list, list]:
        """Returns a list of mod folders, and errors encountered."""

        mods = []
        errors = []

        for i, folder in enumerate(folders):
            if progress_func:
                progress_func(
                    "Loading mods: {}".format(folder),
                    start + i,
                    start + len(folders) - 1,
                )

            try:
                if not os.listdir(folder):
                    # if the mod folder is completely empty, just delete it
                    logger.debug("Deleting empty mod folder")
                    files.delete_folder(folder)
                    continue
            except FileNotFoundError:
                # in the case of a broken symlink, this will trigger an error
                # unfortuantely, a os.path.exists or isdir will return true
                logger.debug("Deleting broken symlink")
                files.delete_symlink(folder)
                continue

            # parse each mod
            try:
                mods.append(self.parse_mod_manifest(folder, enabled=enabled))
            except (NoManifestError, ManifestError):
                errors.append(folder)

        return mods, errors
Beispiel #4
0
 def uninstall_mod(self, folder, update_func=None):
     """Uninstalls a mod."""
     logger.debug("Uninstalling mod {}".format(folder))
     # delete folder
     files.delete_folder(folder, update_func=update_func)
     return True