Merge pull request #181 from zosman1/enhancement-systemd-service-wrapper
Allow multiple services to be enabled at once
This commit is contained in:
commit
75b6ab396e
|
|
@ -19,3 +19,5 @@ class PermissionError(BaseException):
|
||||||
pass
|
pass
|
||||||
class UserError(BaseException):
|
class UserError(BaseException):
|
||||||
pass
|
pass
|
||||||
|
class ServiceException(BaseException):
|
||||||
|
pass
|
||||||
|
|
@ -178,9 +178,11 @@ class Installer():
|
||||||
if self.enable_service('ntpd'):
|
if self.enable_service('ntpd'):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def enable_service(self, service):
|
def enable_service(self, *services):
|
||||||
self.log(f'Enabling service {service}', level=LOG_LEVELS.Info)
|
for service in services:
|
||||||
return self.arch_chroot(f'systemctl enable {service}').exit_code == 0
|
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):
|
def run_command(self, cmd, *args, **kwargs):
|
||||||
return sys_command(f'/usr/bin/arch-chroot {self.target} {cmd}')
|
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 we haven't installed the base yet (function called pre-maturely)
|
||||||
if self.helper_flags.get('base', False) is False:
|
if self.helper_flags.get('base', False) is False:
|
||||||
def post_install_enable_networkd_resolved(*args, **kwargs):
|
def post_install_enable_networkd_resolved(*args, **kwargs):
|
||||||
self.enable_service('systemd-networkd')
|
self.enable_service('systemd-networkd', 'systemd-resolved')
|
||||||
self.enable_service('systemd-resolved')
|
|
||||||
|
|
||||||
self.post_base_install.append(post_install_enable_networkd_resolved)
|
self.post_base_install.append(post_install_enable_networkd_resolved)
|
||||||
# Otherwise, we can go ahead and enable the services
|
# Otherwise, we can go ahead and enable the services
|
||||||
else:
|
else:
|
||||||
self.enable_service('systemd-networkd')
|
self.enable_service('systemd-networkd', 'systemd-resolved')
|
||||||
self.enable_service('systemd-resolved')
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -91,3 +91,13 @@ Exceptions
|
||||||
.. autofunction:: archinstall.ProfileError
|
.. autofunction:: archinstall.ProfileError
|
||||||
|
|
||||||
.. autofunction:: archinstall.SysCallError
|
.. autofunction:: archinstall.SysCallError
|
||||||
|
|
||||||
|
.. autofunction:: archinstall.ProfileNotFound
|
||||||
|
|
||||||
|
.. autofunction:: archinstall.HardwareIncompatibilityError
|
||||||
|
|
||||||
|
.. autofunction:: archinstall.PermissionError
|
||||||
|
|
||||||
|
.. autofunction:: archinstall.UserError
|
||||||
|
|
||||||
|
.. autofunction:: archinstall.ServiceException
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue