diff --git a/plinth/modules/gitweb/__init__.py b/plinth/modules/gitweb/__init__.py index 0254ef98c..76040f058 100644 --- a/plinth/modules/gitweb/__init__.py +++ b/plinth/modules/gitweb/__init__.py @@ -127,6 +127,11 @@ class GitwebApp(app_module.App): privileged.setup() self.enable() + def uninstall(self): + """De-configure and uninstall the app.""" + super().uninstall() + privileged.uninstall() + class GitwebWebserverAuth(Webserver): """Component to handle Gitweb authentication webserver configuration.""" diff --git a/plinth/modules/gitweb/privileged.py b/plinth/modules/gitweb/privileged.py index 9717ff616..bcd2dc5ce 100644 --- a/plinth/modules/gitweb/privileged.py +++ b/plinth/modules/gitweb/privileged.py @@ -4,6 +4,7 @@ import configparser import logging import os +import pathlib import re import shutil import subprocess @@ -386,3 +387,10 @@ def delete_repo(name: str): repo = validate_repo_name(name) repo_path = os.path.join(GIT_REPO_PATH, repo) shutil.rmtree(repo_path) + + +@privileged +def uninstall(): + """Remove git repositories.""" + for item in pathlib.Path(GIT_REPO_PATH).glob('*'): + shutil.rmtree(item, ignore_errors=True)