diff --git a/plinth/modules/infinoted/__init__.py b/plinth/modules/infinoted/__init__.py index e70d684f6..f00338e11 100644 --- a/plinth/modules/infinoted/__init__.py +++ b/plinth/modules/infinoted/__init__.py @@ -78,3 +78,8 @@ class InfinotedApp(app_module.App): super().setup(old_version) privileged.setup() self.enable() + + def uninstall(self): + """De-configure and uninstall the app.""" + super().uninstall() + privileged.uninstall() diff --git a/plinth/modules/infinoted/privileged.py b/plinth/modules/infinoted/privileged.py index 9675030a1..a9a125d7c 100644 --- a/plinth/modules/infinoted/privileged.py +++ b/plinth/modules/infinoted/privileged.py @@ -3,6 +3,7 @@ import grp import os +import pathlib import pwd import shutil import subprocess @@ -167,3 +168,13 @@ def setup(): group='infinoted') action_utils.service_enable('infinoted') + + +@privileged +def uninstall(): + """Remove data, certs, config and systemd unit files.""" + for directory in DATA_DIR, KEY_DIR: + shutil.rmtree(directory, ignore_errors=True) + + for file_ in CONF_PATH, SYSTEMD_SERVICE_PATH: + pathlib.Path(file_).unlink(missing_ok=True)