summaryrefslogtreecommitdiff
path: root/debian/mdadm.config
diff options
context:
space:
mode:
authormadduck <madduck@3cfab66f-1918-0410-86b3-c06b76f9a464>2006-07-08 22:24:52 +0000
committermadduck <madduck@3cfab66f-1918-0410-86b3-c06b76f9a464>2006-07-08 22:24:52 +0000
commit724cca90e642a6bfbdd212dbf9b838187b27267e (patch)
treeb852ad629769e0c9738f7170eb9c861f4be25bec /debian/mdadm.config
parentc1aba7fa922cc2762f4044efb5fb574981a71703 (diff)
Load newtrunk into mdadm/trunk.
Diffstat (limited to 'debian/mdadm.config')
-rw-r--r--debian/mdadm.config123
1 files changed, 123 insertions, 0 deletions
diff --git a/debian/mdadm.config b/debian/mdadm.config
new file mode 100644
index 00000000..7c15ac01
--- /dev/null
+++ b/debian/mdadm.config
@@ -0,0 +1,123 @@
+#!/bin/sh -eu
+# Copyright © 2001-2004 Mario Jou/3en <joussen@debian.org>
+# Copyright © 2006 martin f. krafft <madduck@debian.org>
+# Distributable under the terms of the GNU GPL version 2.
+
+set +u # workaround for #369953
+. /usr/share/debconf/confmodule
+set -u
+
+CONFIG=/etc/mdadm/mdadm.conf
+ALTCONFIG=/etc/mdadm.conf
+[ ! -f $CONFIG ] && [ -f $ALTCONFIG ] && CONFIG=$ALTCONFIG
+
+DEBIANCONFIG=/etc/default/mdadm
+DEBIANCONFIG_OLD=/etc/mdadm/debian.conf
+
+if [ ! -e "$DEBIANCONFIG" ]; then
+ if [ -e "$DEBIANCONFIG_OLD" ]; then
+ DEBIANCONFIG="$DEBIANCONFIG_OLD"
+ fi
+fi
+
+INITRDSTART=''
+
+if [ -s $DEBIANCONFIG ] ; then
+ AUTOSTART=true
+ AUTOCHECK=true
+ START_DAEMON=true
+ MAILADDR=root
+
+ [ -f $DEBIANCONFIG ] && . $DEBIANCONFIG
+ if [ -f $CONFIG ]; then
+ MAILADDR=$(sed -rne 's,^MAILADDR[[:space:]]*([^[:space:]]+).*,\1,p' $CONFIG)
+ fi
+
+ # if $MAIL_TO from $DEBIANCONFIG is set, give it priority. This is because
+ # it was used in the command line invocation of the mdadm monitor, and thus
+ # overruled any existing setting in /etc/mdadm/mdadm.conf.
+ # There's a slight chance of loss of a configuration setting (MAILADDR in
+ # /etc/mdadm/mdadm.conf), but it's only an email address, and it is likely
+ # unused anyway, thus we run the risk.
+ [ -n "${MAIL_TO:-}" ] && MAILADDR="$MAIL_TO"
+
+ [ -n "$AUTOSTART" ] && db_set mdadm/autostart "$AUTOSTART"
+ [ -n "$AUTOCHECK" ] && db_set mdadm/autocheck "$AUTOCHECK"
+ [ -n "$START_DAEMON" ] && db_set mdadm/start_daemon "$START_DAEMON"
+ [ -n "$MAILADDR" ] && db_set mdadm/mail_to "$MAILADDR"
+fi
+
+db_input high mdadm/warning || true
+db_go
+
+if [ -z "$INITRDSTART" ]; then
+ ROOTRAIDDEV="$(df / | sed -ne 's,^\(/dev/[^[:space:]]\+\).*,\1,p')"
+ if ! mdadm --detail $ROOTRAIDDEV >/dev/null 2>&1; then
+ # you are using some funky setup. Let's be save...
+ INITRDSTART=all
+ else
+ INITRDSTART="$ROOTRAIDDEV"
+ fi
+fi
+
+[ -n "$INITRDSTART" ] && db_set mdadm/initrdstart "$INITRDSTART"
+
+while true; do
+ db_input low mdadm/initrdstart || true
+ db_go
+
+ db_get mdadm/initrdstart
+ INITRDSTART=$RET
+
+ case "$INITRDSTART" in
+ ''|none) INITRDSTART=none; break;;
+ all) break;;
+
+ /dev/md*|md*)
+ ARRAYS=''
+ ERROR=0
+ for i in $INITRDSTART; do
+ case "$i" in
+ /dev/md*)
+ t=${i%,} # just in case people use commas between devices
+ [ -b "$t" ] && ARRAYS="${ARRAYS:+$ARRAYS }$t" && continue
+ echo "E: invalid device: $i" >&2
+ ERROR=1; break
+ ;;
+ md*)
+ t=/dev/${i%,} # just in case people use commas between devices
+ [ -b "$t" ] && ARRAYS="${ARRAYS:+$ARRAYS }$t" && continue
+ echo "E: invalid device: $i" >&2
+ ERROR=1; break
+ ;;
+ *)
+ echo "E: unrecognised device string: $i" >&2
+ ERROR=1; break
+ ;;
+ esac
+ done
+ [ $ERROR -eq 0 ] && INITRDSTART="$ARRAYS" && break
+ ;;
+
+ *) :;;
+ esac
+done
+
+db_set mdadm/initrdstart "$INITRDSTART"
+
+if [ "$INITRDSTART" != all ]; then
+ db_input high mdadm/autostart || true
+ db_go
+fi
+
+db_input medium mdadm/autocheck || true
+db_go
+
+db_input medium mdadm/start_daemon || true
+db_go
+
+db_get mdadm/start_daemon
+if [ "$RET" = true ]; then
+ db_input medium mdadm/mail_to || true
+ db_go
+fi