X-Git-Url: https://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=sbin%2Fgrml-autoconfig;h=9806ac317f0bd6e1f4e63b59fea674e7eed22794;hp=57e7601d75c5bb47585895fb1def472a4b21d01e;hb=0623d5bfb8b8ef5553716ba9cfcec9eaec9cb065;hpb=1c1a58499d78615efd64540abe41d0dc31bdb6d0 diff --git a/sbin/grml-autoconfig b/sbin/grml-autoconfig index 57e7601..9806ac3 100755 --- a/sbin/grml-autoconfig +++ b/sbin/grml-autoconfig @@ -4,7 +4,6 @@ # 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: Don Nov 16 20:24:16 CET 2006 [mika] ################################################################################ if [ "$UID" != 0 ]; then @@ -13,22 +12,25 @@ fi LANG=C LC_ALL=C -PN=`basename "$0"` -TMPFILE=`mktemp` - -grep -q small /etc/grml_version 2>/dev/null && AUTOCONFIG=/etc/grml/autoconfig.small || AUTOCONFIG=/etc/grml/autoconfig +PN="$(basename $0)" +TMPFILE="$(mktemp)" +AUTOCONFIG=/etc/grml/autoconfig [ -r $AUTOCONFIG ] || exit 1 +. $AUTOCONFIG + # helper functions activate_value() { - sed -i "s/$1.*/$1='yes'/" $AUTOCONFIG + check_entry $1 + sed -i "s/$1.*/$1'yes'/" ${CONFIG_AUTOCONFIG_LOCAL} } deactivate_value() { - sed -i "s/$1.*/$1='no'/" $AUTOCONFIG + check_entry $1 + sed -i "s/$1.*/$1'no'/" ${CONFIG_AUTOCONFIG_LOCAL} } check_setting() @@ -36,14 +38,28 @@ check_setting() grep -q $* $TMPFILE && return 0 || return 1 } +check_entry() +{ + if ! grep -q ${1} ${CONFIG_AUTOCONFIG_LOCAL} 2>/dev/null ; then + grep $1 ${AUTOCONFIG} >> ${CONFIG_AUTOCONFIG_LOCAL} + fi +} + +is_set() +{ + [ $1 = 'yes' ] && return 0 || return 1 +} check_current_state() { - grep -q '^CONFIG_DHCP=.*yes' $AUTOCONFIG && DHCPSTATUS=ON || DHCPSTATUS=OFF - grep -q '^CONFIG_FSTAB=.*yes' $AUTOCONFIG && FSTABSTATUS=ON || FSTABSTATUS=OFF - grep -q '^CONFIG_CPU=.*yes' $AUTOCONFIG && CPUSTATUS=ON || CPUSTATUS=OFF - grep -q '^CONFIG_ACPI_APM=.*yes' $AUTOCONFIG && ACPI_APMSTATUS=ON || ACPI_APMSTATUS=OFF - grep -q '^CONFIG_SYSLOG=.*yes' $AUTOCONFIG && SYSLOGSTATUS=ON || SYSLOGSTATUS=OFF - grep -q '^CONFIG_GPM=.*yes' $AUTOCONFIG && GPMSTATUS=ON || GPMSTATUS=OFF + is_set $CONFIG_DHCP && DHCPSTATUS=ON || DHCPSTATUS=OFF + if [ "$(grep '^auto' /etc/network/interfaces | sed 's/ lo// ; s/auto// ; s/ //g')" != "" ] ; then + DHCPSTATUS=OFF + fi + is_set $CONFIG_FSTAB && FSTABSTATUS=ON || FSTABSTATUS=OFF + is_set $CONFIG_CPU && CPUSTATUS=ON || CPUSTATUS=OFF + is_set $CONFIG_ACPI_APM && ACPI_APMSTATUS=ON || ACPI_APMSTATUS=OFF + is_set $CONFIG_SYSLOG && SYSLOGSTATUS=ON || SYSLOGSTATUS=OFF + is_set $CONFIG_GPM && GPMSTATUS=ON || GPMSTATUS=OFF } # main program @@ -56,7 +72,7 @@ interface to activate or deactivate some features. If you do not know what to do at this stage just leave it untouched, the defaults are the recommended values. -All the configuration happens in the file /etc/grml/autoconfig - you can +All the configuration happens in the file /etc/grml/autoconfig.local - you can edit it manually as well. " 0 0 0 \ dhcp "check for network devices and run pump (get ip-address via DHCP)" $DHCPSTATUS \ @@ -70,12 +86,12 @@ gpm "start GPM (mouse on console)" $GPMSTATUS \ set_values() { - check_setting dhcp && activate_value CONFIG_DHCP || deactivate_value CONFIG_DHCP - check_setting fstab && activate_value CONFIG_FSTAB || deactivate_value CONFIG_FSTAB - check_setting cpufreq && activate_value CONFIG_CPU || deactivate_value CONFIG_CPU - check_setting acpi_apm && activate_value CONFIG_ACPI_APM || deactivate_value CONFIG_ACPI_APM - check_setting syslog && activate_value CONFIG_SYSLOG || deactivate_value CONFIG_SYSLOG - check_setting gpm && activate_value CONFIG_GPM || deactivate_value CONFIG_GPM + check_setting dhcp && activate_value CONFIG_DHCP= || deactivate_value CONFIG_DHCP= + check_setting fstab && activate_value CONFIG_FSTAB= || deactivate_value CONFIG_FSTAB= + check_setting cpufreq && activate_value CONFIG_CPU= || deactivate_value CONFIG_CPU= + check_setting acpi_apm && activate_value CONFIG_ACPI_APM= || deactivate_value CONFIG_ACPI_APM= + check_setting syslog && activate_value CONFIG_SYSLOG= || deactivate_value CONFIG_SYSLOG= + check_setting gpm && activate_value CONFIG_GPM= || deactivate_value CONFIG_GPM= } # and now run it: