From 08496d0793f2720fe5befd122ac2832592aebc73 Mon Sep 17 00:00:00 2001 From: Twentysix Date: Fri, 17 Feb 2017 17:21:50 +0100 Subject: [PATCH] [Downloader] Delete repo folder on repo removal --- cogs/downloader.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cogs/downloader.py b/cogs/downloader.py index 6800b17a4..2a363f1fe 100644 --- a/cogs/downloader.py +++ b/cogs/downloader.py @@ -110,11 +110,18 @@ class Downloader: @repo.command(name="remove") async def _repo_del(self, repo_name: str): """Removes repo from repo list. COGS ARE NOT REMOVED.""" + def remove_readonly(func, path, excinfo): + os.chmod(path, 0o755) + func(path) + if repo_name not in self.repos: await self.bot.say("That repo doesn't exist.") return del self.repos[repo_name] - #shutil.rmtree(os.path.join(self.path, repo_name)) + try: + shutil.rmtree(os.path.join(self.path, repo_name), onerror=remove_readonly) + except FileNotFoundError: + pass self.save_repos() await self.bot.say("Repo '{}' removed.".format(repo_name))