Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall/lib
diff options
context:
space:
mode:
authorAnton Hvornum <anton@hvornum.se>2021-04-11 08:44:37 +0000
committerGitHub <noreply@github.com>2021-04-11 08:44:37 +0000
commit75b6ab396e3913e021ebfc49b626dfefd9eb0924 (patch)
treeef1fccf6d115807741e6b0bcda4d38a1ac8d6af3 /archinstall/lib
parent6fb0f006d0bf93a8436fd85d3f209a0603b3dd1f (diff)
parentc674bbd3024dc79ce1e630a0471a4d4fd52f6df5 (diff)
Merge pull request #181 from zosman1/enhancement-systemd-service-wrapper
Allow multiple services to be enabled at once
Diffstat (limited to 'archinstall/lib')
-rw-r--r--archinstall/lib/exceptions.py2
-rw-r--r--archinstall/lib/installer.py16
2 files changed, 10 insertions, 8 deletions
diff --git a/archinstall/lib/exceptions.py b/archinstall/lib/exceptions.py
index a320eef6..49913980 100644
--- a/archinstall/lib/exceptions.py
+++ b/archinstall/lib/exceptions.py
@@ -18,4 +18,6 @@ class HardwareIncompatibilityError(BaseException):
class PermissionError(BaseException):
pass
class UserError(BaseException):
+ pass
+class ServiceException(BaseException):
pass \ No newline at end of file
diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py
index 92e89f26..4ff9e80a 100644
--- a/archinstall/lib/installer.py
+++ b/archinstall/lib/installer.py
@@ -178,9 +178,11 @@ class Installer():
if self.enable_service('ntpd'):
return True
- def enable_service(self, service):
- self.log(f'Enabling service {service}', level=LOG_LEVELS.Info)
- return self.arch_chroot(f'systemctl enable {service}').exit_code == 0
+ def enable_service(self, *services):
+ for service in services:
+ self.log(f'Enabling service {service}', level=LOG_LEVELS.Info)
+ if (output := self.arch_chroot(f'systemctl enable {service}')).exit_code != 0:
+ raise ServiceException(f"Unable to start service {service}: {output}")
def run_command(self, cmd, *args, **kwargs):
return sys_command(f'/usr/bin/arch-chroot {self.target} {cmd}')
@@ -245,14 +247,12 @@ class Installer():
# If we haven't installed the base yet (function called pre-maturely)
if self.helper_flags.get('base', False) is False:
def post_install_enable_networkd_resolved(*args, **kwargs):
- self.enable_service('systemd-networkd')
- self.enable_service('systemd-resolved')
-
+ self.enable_service('systemd-networkd', 'systemd-resolved')
self.post_base_install.append(post_install_enable_networkd_resolved)
# Otherwise, we can go ahead and enable the services
else:
- self.enable_service('systemd-networkd')
- self.enable_service('systemd-resolved')
+ self.enable_service('systemd-networkd', 'systemd-resolved')
+
return True