diff --git a/wau/cli.py b/wau/cli.py index 2f15e45..4db6ad5 100644 --- a/wau/cli.py +++ b/wau/cli.py @@ -98,7 +98,7 @@ class CLI: args.func(args) def install(self, args) -> None: - already_installed_urls = {a.url for a in self.installed_addons} + already_installed_urls = {addon.url for addon in self.installed_addons} for url in set(args.urls): # set removes duplicates if url in already_installed_urls: print(f"{url} is already installed") @@ -108,21 +108,16 @@ class CLI: addon.download() addon.install() self.installed_addons.append(addon) - addons.save_installed_addons(self.installed_addons) + addons.save_installed_addons(self.installed_addons) def remove(self, args) -> None: - if args.all: - remove = self.installed_addons.copy() - else: - remove = [addon - for addon in self.installed_addons - if addon.name in args.addons] - for addon in remove: - print(f"Removing {addon.name}") - addon.uninstall() - shutil.rmtree(addon.download_dir, ignore_errors=True) - self.installed_addons.remove(addon) - addons.save_installed_addons(self.installed_addons) + for addon in self.installed_addons: + if args.all or addon.name in args.addons: + print(f"Removing {addon.name}") + addon.uninstall() + shutil.rmtree(addon.download_dir, ignore_errors=True) + self.installed_addons.remove(addon) + addons.save_installed_addons(self.installed_addons) def update(self, args) -> None: for addon in self.installed_addons: @@ -132,11 +127,11 @@ class CLI: addon.uninstall() addon.install() print("Done" if changed else "Already up to date") - addons.save_installed_addons(self.installed_addons) + addons.save_installed_addons(self.installed_addons) def list(self, args) -> None: table = [] - for addon in self.installed_addons: + for addon in sorted(self.installed_addons, key=lambda a: a.name.lower()): table.append({ "Name": addon.name, "Provider": addon.get_provider().__name__,