X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=usr_sbin%2Fgrml-setservices;h=0ef7af4c280b0a8462e7bfb0f8ea81435b92d5f8;hb=3b7f948896440f41092f14347b17ce114072c569;hp=be213633e3ba9965a5427bdea1107565e2dbe49e;hpb=9361eeb95dabd37c25f471cf8b101a86975c4c10;p=grml-scripts.git diff --git a/usr_sbin/grml-setservices b/usr_sbin/grml-setservices index be21363..0ef7af4 100755 --- a/usr_sbin/grml-setservices +++ b/usr_sbin/grml-setservices @@ -1,19 +1,21 @@ -#!/bin/sh +#!/bin/bash # Filename: grml-setservices # Purpose: interface for basic configuration of system startup # Authors: grml-team (grml.org), (c) Michael Prokop # 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)" +PN="$(basename "$0")" TMP=$(mktemp) DIALOG=dialog CONFFILE='/etc/runlevel.conf' +# shellcheck disable=SC1091 +{ . /etc/grml/script-functions . /etc/grml/lsb-functions +} check4root || exit 100 @@ -22,12 +24,12 @@ bailout(){ exit 0 } -trap bailout 1 2 3 15 +trap bailout HUP INT QUIT TERM is_value_set(){ [ -n "$1" ] || return 2 [ -r "$TMP" ] || return 3 - grep -q "$1" $TMP && return 0 || return 1 + grep -q "$1" "$TMP" && return 0 || return 1 } INFO="Which services would you like to have enabled on your system? @@ -41,42 +43,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/dbus ] || [ -r /etc/init.d/dbus-1 ] && DBUS='dbus!hal/dbus (important for KDE e.g.)!off' +[ -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 @@ -97,7 +147,7 @@ case $retval in ;; esac -rm -f $TMP +rm -f "$TMP" IFS="$oifs" ## END OF FILE #################################################################