diff options
author | madduck <madduck@3cfab66f-1918-0410-86b3-c06b76f9a464> | 2006-07-08 22:24:52 +0000 |
---|---|---|
committer | madduck <madduck@3cfab66f-1918-0410-86b3-c06b76f9a464> | 2006-07-08 22:24:52 +0000 |
commit | 724cca90e642a6bfbdd212dbf9b838187b27267e (patch) | |
tree | b852ad629769e0c9738f7170eb9c861f4be25bec /debian/mdadm.config | |
parent | c1aba7fa922cc2762f4044efb5fb574981a71703 (diff) |
Load newtrunk into mdadm/trunk.
Diffstat (limited to 'debian/mdadm.config')
-rw-r--r-- | debian/mdadm.config | 123 |
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 |