Ignore /dev/.static/dev for /etc/mtab in live-mode
[grml-autoconfig.git] / sbin / grml-autoconfig
1 #!/bin/sh
2 # Filename:      grml-autoconfig
3 # Purpose:       configuration interface for grml-autoconfig
4 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika(at)grml.org>
5 # Bug-Reports:   see http://grml.org/bugs/
6 # License:       This file is licensed under the GPL v2.
7 # Latest change: Don Mär 29 11:30:33 CEST 2007 [mika]
8 ################################################################################
9
10 if [ "$UID" != 0 ];  then
11   echo "Error: please run this script with uid 0 (root)." ; exit 1
12 fi
13
14 LANG=C
15 LC_ALL=C
16 PN=`basename "$0"`
17 TMPFILE=`mktemp`
18
19 grep -q small /etc/grml_version 2>/dev/null && AUTOCONFIG=/etc/grml/autoconfig.small || AUTOCONFIG=/etc/grml/autoconfig
20
21 [ -r $AUTOCONFIG ] || exit 1
22
23 # helper functions
24 activate_value()
25 {
26   sed -i "s/$1.*/$1'yes'/" $AUTOCONFIG
27 }
28
29 deactivate_value()
30 {
31   sed -i "s/$1.*/$1'no'/" $AUTOCONFIG
32 }
33
34 check_setting()
35 {
36   grep -q $* $TMPFILE && return 0 || return 1
37 }
38
39 check_current_state()
40 {
41   grep -q '^CONFIG_DHCP=.*yes'     $AUTOCONFIG && DHCPSTATUS=ON     || DHCPSTATUS=OFF
42   grep -q '^CONFIG_FSTAB=.*yes'    $AUTOCONFIG && FSTABSTATUS=ON    || FSTABSTATUS=OFF
43   grep -q '^CONFIG_CPU=.*yes'      $AUTOCONFIG && CPUSTATUS=ON      || CPUSTATUS=OFF
44   grep -q '^CONFIG_ACPI_APM=.*yes' $AUTOCONFIG && ACPI_APMSTATUS=ON || ACPI_APMSTATUS=OFF
45   grep -q '^CONFIG_SYSLOG=.*yes'   $AUTOCONFIG && SYSLOGSTATUS=ON   || SYSLOGSTATUS=OFF
46   grep -q '^CONFIG_GPM=.*yes'      $AUTOCONFIG && GPMSTATUS=ON      || GPMSTATUS=OFF
47 }
48
49 # main program
50 interface()
51 {
52   dialog --cr-wrap --clear --cancel-label "Exit" --title "$PN" --checklist "grml-autoconfig is the framework which includes hardware
53 detection, activation of system services and this is the
54 interface to activate or deactivate some features.
55
56 If you do not know what to do at this stage just leave it untouched,
57 the defaults are the recommended values.
58
59 All the configuration happens in the file /etc/grml/autoconfig - you can
60 edit it manually as well.
61 " 0 0 0 \
62 dhcp "check for network devices and run pump (get ip-address via DHCP)" $DHCPSTATUS \
63 fstab "update /etc/fstab entries (check for devices)" $FSTABSTATUS \
64 cpufreq "activate cpydyn/powernowd for frequency-scalable CPUs" $CPUSTATUS \
65 acpi_apm "load ACPI/APM modules" $ACPI_APMSTATUS \
66 syslog "start syslog-ng" $SYSLOGSTATUS \
67 gpm "start GPM (mouse on console)" $GPMSTATUS \
68   2>$TMPFILE
69 }
70
71 set_values()
72 {
73   check_setting dhcp      && activate_value CONFIG_DHCP=     || deactivate_value CONFIG_DHCP=
74   check_setting fstab     && activate_value CONFIG_FSTAB=    || deactivate_value CONFIG_FSTAB=
75   check_setting cpufreq   && activate_value CONFIG_CPU=      || deactivate_value CONFIG_CPU=
76   check_setting acpi_apm  && activate_value CONFIG_ACPI_APM= || deactivate_value CONFIG_ACPI_APM=
77   check_setting syslog    && activate_value CONFIG_SYSLOG=   || deactivate_value CONFIG_SYSLOG=
78   check_setting gpm       && activate_value CONFIG_GPM=      || deactivate_value CONFIG_GPM=
79 }
80
81 # and now run it:
82   check_current_state
83   interface
84   retval=$?
85   case $retval in
86    0)
87     set_values && dialog --stdout --title "${PN}" --msgbox "Adjusting values via grml-autoconfig was successful!" 5 60 || \
88     dialog --stdout --title "${PN}" --msgbox "There was an error adjusting values via grml-autoconfig. Sorry." 5 60
89     rm -f $TMPFILE &>/dev/null
90     ;;
91    1)
92     echo "Exit pressed."
93     ;;
94    255)
95     echo "ESC pressed."
96     exit 1
97     ;;
98   esac
99
100 ## END OF FILE #################################################################