From a878c1a6109349c8f7182663fae60932a109af9c Mon Sep 17 00:00:00 2001 From: udeved Date: Mon, 28 May 2018 01:31:55 +0200 Subject: [PATCH] add openrccfg --- src/modules/openrccfg/main.py | 58 ++++++++++++++++++++++++++++ src/modules/openrccfg/module.desc | 5 +++ src/modules/openrccfg/openrccfg.conf | 8 ++++ 3 files changed, 71 insertions(+) create mode 100644 src/modules/openrccfg/main.py create mode 100644 src/modules/openrccfg/module.desc create mode 100644 src/modules/openrccfg/openrccfg.conf diff --git a/src/modules/openrccfg/main.py b/src/modules/openrccfg/main.py new file mode 100644 index 000000000..724b02c3f --- /dev/null +++ b/src/modules/openrccfg/main.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# === This file is part of Calamares - === +# +# Copyright 2016, Artoo +# Copyright 2017, Philip Müller +# Copyright 2018, Artoo +# +# Calamares is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Calamares is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Calamares. If not, see . + +import libcalamares + +from libcalamares.utils import target_env_call +from os.path import exists, join + + +class OpenrcController: + """This is the service controller + """ + + def __init__(self): + self.root = libcalamares.globalstorage.value('rootMountPoint') + self.services = libcalamares.job.configuration.get('services', []) + + def update(self, state): + """Update init scripts + """ + + for svc in self.services[state]: + if exists(self.root + "/etc/init.d/" + svc["name"]): + target_env_call( + ["rc-update", state, svc["name"], svc["runlevel"]] + ) + + def run(self): + """Run the controller + """ + + for state in self.services.keys(): + self.update(state) + +def run(): + """Setup services + """ + + return OpenrcController().run() diff --git a/src/modules/openrccfg/module.desc b/src/modules/openrccfg/module.desc new file mode 100644 index 000000000..1be7af923 --- /dev/null +++ b/src/modules/openrccfg/module.desc @@ -0,0 +1,5 @@ +--- +type: "job" +name: "openrccfg" +interface: "python" +script: "main.py" diff --git a/src/modules/openrccfg/openrccfg.conf b/src/modules/openrccfg/openrccfg.conf new file mode 100644 index 000000000..e10da15ce --- /dev/null +++ b/src/modules/openrccfg/openrccfg.conf @@ -0,0 +1,8 @@ +--- +services: + add: + - name: "NetworkManager" + runlevel: "default" +# del: +# - name: "hwclock" +# runlevel: "boot"