about summary refs log tree commit diff
path: root/dracut
diff options
context:
space:
mode:
authorJuan RP <xtraeme@gmail.com>2014-12-02 21:03:58 +0100
committerJuan RP <xtraeme@gmail.com>2014-12-02 21:03:58 +0100
commitca99f9f5bb66a4e160ac3404253d5fb7a79559eb (patch)
treec0b5a9b9ba2cb3634acb6ef93849e06b9d59371c /dracut
parent6847c606fb8a027c7f93c69846f27d5146904b5c (diff)
downloadhrmpf-ca99f9f5bb66a4e160ac3404253d5fb7a79559eb.tar.gz
hrmpf-ca99f9f5bb66a4e160ac3404253d5fb7a79559eb.tar.xz
hrmpf-ca99f9f5bb66a4e160ac3404253d5fb7a79559eb.zip
New dracut module helper to enable runit services.
Diffstat (limited to 'dracut')
-rw-r--r--dracut/module-setup.sh1
-rw-r--r--dracut/services.sh29
2 files changed, 30 insertions, 0 deletions
diff --git a/dracut/module-setup.sh b/dracut/module-setup.sh
index a44efd2..765f41f 100644
--- a/dracut/module-setup.sh
+++ b/dracut/module-setup.sh
@@ -18,4 +18,5 @@ install() {
     inst_hook pre-pivot 02 "$moddir/display-manager-autologin.sh"
     inst_hook pre-pivot 03 "$moddir/copy-initramfs.sh"
     inst_hook pre-pivot 04 "$moddir/locale.sh"
+    inst_hook pre-pivot 05 "$moddir/services.sh"
 }
diff --git a/dracut/services.sh b/dracut/services.sh
new file mode 100644
index 0000000..c26ba19
--- /dev/null
+++ b/dracut/services.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+
+SERVICEDIR=$NEWROOT/etc/sv/
+SERVICES="$(getarg live.services)"
+
+for f in ${SERVICES}; do
+        ln -s /etc/sv/$f $NEWROOT/etc/runit/runsvdir/default/
+done
+
+dhcpcd=1
+for f in connmand NetworkManager wicd; do
+    if [ -e $SERVICEDIR/$f ]; then
+        unset dhcpcd
+    fi
+done
+
+# Enable all services by default... with some exceptions.
+for f in $SERVICEDIR/*; do
+    _service=${f##*/}
+    case "${_service}" in
+        agetty-console|sulogin|dhcpcd-*) ;; # ignored
+        dhcpcd) [ -n "$dhcpcd" ] && ln -sf ${f##$NEWROOT} $NEWROOT/etc/runit/runsvdir/default/;;
+        *) ln -sf ${f##$NEWROOT} $NEWROOT/etc/runit/runsvdir/default/;;
+    esac
+done