openrccfg: add small documentation in conf, make service location configurable

main
udeved 7 years ago committed by artoo
parent a878c1a610
commit 88e082d531

@ -27,22 +27,25 @@ from os.path import exists, join
class OpenrcController: class OpenrcController:
"""This is the service controller """This is the openrc service controller
""" """
def __init__(self): def __init__(self):
self.root = libcalamares.globalstorage.value('rootMountPoint') self.root = libcalamares.globalstorage.value('rootMountPoint')
self.services = libcalamares.job.configuration.get('services', []) self.services = libcalamares.job.configuration.get('services', [])
self.initdDir = libcalamares.job.configuration['initdDir']
self.runlevelsDir = libcalamares.job.configuration['runlevelsDir']
def update(self, state): def update(self, state):
"""Update init scripts """call rc-update for each service listed
""" """
for svc in self.services[state]: for svc in self.services[state]:
if exists(self.root + "/etc/init.d/" + svc["name"]): if exists(self.root + self.initdDir + "/" + svc["name"]):
target_env_call( if exists(self.root + self.runlevelsDir + "/" + svc["runlevel"]):
["rc-update", state, svc["name"], svc["runlevel"]] target_env_call(
) ["rc-update", state, svc["name"], svc["runlevel"]]
)
def run(self): def run(self):
"""Run the controller """Run the controller

@ -1,8 +1,39 @@
# operccfg
# openrc services module to set service runlevels via rc-update in the chroot
#
# format of the conf
###
# services:
# add:
# - name: foo1
# runlevel: default
# - name: foo2
# runlevel: nonetwork
# del:
# - name: foo3
# runlevel: default
#
# initdDir: /etc/init.d
#
# runlevelsDir: /etc/runlevels
####
# add: list of services and their runlevels to add
# del: list of services and their runlevels to delete
# name: the service name
# runlevel: can hold any runlevel present on the target system
# initdDir: holds the openrc service directory location
# runlevelsDir: holds the runlevels directory location
#
# handle del with care and only use it if absolutely necessary
# if a service is listed in the conf but is not present/detected on the target system,
# or a runlevel does not exist, it will be ignored and skipped
#
--- ---
services: services:
add: add:
- name: "NetworkManager" - name: "NetworkManager"
runlevel: "default" runlevel: "default"
# del:
# - name: "hwclock" initdDir: /etc/init.d
# runlevel: "boot"
runlevelsDir: /etc/runlevels

Loading…
Cancel
Save