diff --git a/docs/cog_guides/downloader.rst b/docs/cog_guides/downloader.rst index c991b8c4f..1e4b2cc2d 100644 --- a/docs/cog_guides/downloader.rst +++ b/docs/cog_guides/downloader.rst @@ -461,14 +461,15 @@ repo delete **Description** -Remove a repo and its files. +Remove repos and their files. -Example: +Examples: - ``[p]repo delete 26-Cogs`` + - ``[p]repo delete 26-Cogs Laggrons-Dumb-Cogs`` **Arguments** -- ```` The name of an already added repo +- ```` The repo or repos to remove. .. _downloader-command-repo-info: diff --git a/redbot/cogs/downloader/downloader.py b/redbot/cogs/downloader/downloader.py index a0e1ff51b..ce2d9326a 100644 --- a/redbot/cogs/downloader/downloader.py +++ b/redbot/cogs/downloader/downloader.py @@ -583,22 +583,29 @@ class Downloader(commands.Cog): if repo.install_msg: await ctx.send(repo.install_msg.replace("[p]", ctx.clean_prefix)) - @repo.command(name="delete", aliases=["remove", "del"]) - async def _repo_del(self, ctx: commands.Context, repo: Repo) -> None: + @repo.command(name="delete", aliases=["remove", "del"], require_var_positional=True) + async def _repo_del(self, ctx: commands.Context, *repos: Repo) -> None: """ - Remove a repo and its files. + Remove repos and their files. - Example: + Examples: - `[p]repo delete 26-Cogs` + - `[p]repo delete 26-Cogs Laggrons-Dumb-Cogs` **Arguments** - - `` The name of an already added repo + - `` The repo or repos to remove. """ - await self._repo_manager.delete_repo(repo.name) + for repo in set(repos): + await self._repo_manager.delete_repo(repo.name) await ctx.send( - _("The repo `{repo.name}` has been deleted successfully.").format(repo=repo) + ( + _("Successfully deleted repos: ") + if len(repos) > 1 + else _("Successfully deleted the repo: ") + ) + + humanize_list([inline(i.name) for i in set(repos)]) ) @repo.command(name="list")