Fix: Erase all forgotten stuff from grml-config-user [Closes: issue1272]
[grml-scripts.git] / usr_sbin / grml-setservices
index be21363..1d8e146 100755 (executable)
@@ -1,10 +1,9 @@
-#!/bin/sh
+#!/bin/bash
 # Filename:      grml-setservices
 # Purpose:       interface for basic configuration of system startup
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
-# Latest change: Fre Mär 16 21:54:10 CET 2007 [mika]
 ################################################################################
 
 PN="$(basename $0)"
@@ -22,7 +21,7 @@ bailout(){
   exit 0
 }
 
-trap bailout 1 2 3 15
+trap bailout HUP INT QUIT TERM
 
 is_value_set(){
  [ -n "$1" ] || return 2
@@ -41,42 +40,90 @@ or choose cancel.
 "
 
 # enable checks only if the according init script is present
+[ -r /etc/init.d/lvm2 ]   && LVM='lvm!logical volume management!on'
 [ -r /etc/init.d/mdadm ]  && SRAID='mdadm!software-raid via mdadm!on'
 [ -r /etc/init.d/dmraid ] && MRAID='dmraid!software-raid via dmraid!off'
 [ -r /etc/init.d/dbus -o -r /etc/init.d/dbus-1 ] && DBUS='dbus!hal/dbus (important for KDE e.g.)!off'
-
-# adjust setup
+[ -r /etc/init.d/hal ]    && HAL='hal!Hardware Abstraction Layer daemon (important for KDE e.g.)!off'
+[ -r /etc/init.d/nfs-common ] && NFS='nfs!Network File System (client setup)!off'
+
+## adjust setup
+# logic:
+# if is_value_set
+#    remove_from_runlevel.conf
+#    set_up_defaults_as_intented_in_/var/lib/dpkg/info/$PACKAGE.postinst
+# else
+#    remove_from_runlevel.conf
+#    set_up_only_for_stop_to_prevent_reactivation_via_maintainer_scripts_on_upgrade
 set_values(){
-  if is_value_set "mdadm"  ; then
-     update-rc.d -f mdadm remove >/dev/null 2>&1
-     update-rc.d mdadm-raid start 25 S . start 50 0 6 . >/dev/null 2>&1
-     update-rc.d mdadm defaults 25 >/dev/null 2>&1
-  else
-     update-rc.d -f mdadm remove >/dev/null 2>&1
-     update-rc.d mdadm stop 20 0 1 6 . >/dev/null 2>&1
+  if [ -n "$LVM" ] ; then
+     if is_value_set "lvm" ; then
+        update-rc.d -f lvm2 remove >/dev/null 2>&1
+        update-rc.d lvm2 start 26 S . start 50 0 6 .
+     else
+        update-rc.d -f lvm2 remove >/dev/null 2>&1
+        update-rc.d lvm2 stop 20 0 1 6 . >/dev/null 2>&1
+     fi
+  fi
+
+  if [ -n "$SRAID" ] ; then
+     if is_value_set "mdadm"  ; then
+        update-rc.d -f mdadm remove >/dev/null 2>&1
+        update-rc.d mdadm-raid start 25 S . start 50 0 6 . >/dev/null 2>&1
+        update-rc.d mdadm defaults 25 >/dev/null 2>&1
+     else
+        update-rc.d -f mdadm remove >/dev/null 2>&1
+        update-rc.d mdadm stop 20 0 1 6 . >/dev/null 2>&1
+        update-rc.d -f mdadm-raid remove >/dev/null 2>&1
+        update-rc.d mdadm-raid stop 20 0 1 6 . >/dev/null 2>&1
+     fi
+  fi
+
+  if [ -n "$MRAID" ] ; then
+     if is_value_set "dmraid" ; then
+        update-rc.d -f dmraid remove >/dev/null 2>&1
+        update-rc.d dmraid start 04 S . start 51 0 6 . >/dev/null
+     else
+        update-rc.d -f dmraid remove >/dev/null 2>&1
+        update-rc.d dmraid stop 20 0 1 6 . >/dev/null 2>&1
+     fi
+  fi
+
+  if [ -n "$DBUS" ] ; then
+     if is_value_set "dbus" ; then
+        update-rc.d -f dbus remove >/dev/null 2>&1
+        update-rc.d dbus defaults >/dev/null 2>&1
+     else
+        update-rc.d -f dbus remove >/dev/null 2>&1
+        update-rc.d dbus stop 20 0 1 6 . >/dev/null 2>&1
+     fi
   fi
 
-  if is_value_set "dmraid" ; then
-     update-rc.d -f dmraid remove >/dev/null 2>&1
-     update-rc.d dmraid start 04 S . start 51 0 6 . >/dev/null
-  else
-     update-rc.d -f dmraid remove >/dev/null 2>&1
-     update-rc.d dmraid stop 20 0 1 6 . >/dev/null 2>&1
+  if [ -n "$HAL" ] ; then
+     if is_value_set "hal" ; then
+        update-rc.d -f hal remove >/dev/null 2>&1
+        update-rc.d hal start 24 2 3 4 5. stop 16 0 1 6 . >/dev/null 2>&1
+     else
+        update-rc.d -f hal remove >/dev/null 2>&1
+        update-rc.d hal stop 20 0 1 6 . >/dev/null 2>&1
+     fi
   fi
 
-  if is_value_set "dbus" ; then
-     update-rc.d -f dbus remove >/dev/null 2>&1
-     update-rc.d dbus defaults >/dev/null 2>&1
-  else
-     update-rc.d -f dbus remove >/dev/null 2>&1
-     update-rc.d dbus stop 20 0 1 6 . >/dev/null 2>&1
+  if [ -n "$NFS" ] ; then
+     if is_value_set "nfs" ; then
+        update-rc.d -f nfs-common remove >/dev/null 2>&1
+        update-rc.d nfs-common start 20 2 3 4 5 . stop 20 0 1 6 . start 44 S . >/dev/null 2>&1
+     else
+        update-rc.d -f nfs-common remove >/dev/null 2>&1
+        update-rc.d nfs-common stop 20 0 1 6 . >/dev/null 2>&1
+     fi
   fi
 }
 
 # the interface itself
 oifs="$IFS"
 IFS='!'
-$DIALOG --title "$PN" --checklist "$INFO" 30 65 8 $SRAID $MRAID $DBUS 2>$TMP
+$DIALOG --title "$PN" --checklist "$INFO" 30 65 8 $LVM $SRAID $MRAID $DBUS $HAL $NFS 2>$TMP
 
 retval="$?"
 case $retval in