Merging casper 1.216.
[live-boot-grml.git] / scripts / live-bottom / 24preseed
index cd530ea..9a77ef5 100755 (executable)
@@ -1,50 +1,69 @@
-#! /bin/sh
+#!/bin/sh
 
-PREREQ=""
-DESCRIPTION="Loading preseed file..."
+#set -e
 
-. /scripts/live-functions
+# initramfs-tools header
+
+PREREQ=""
 
-prereqs ()
+prereqs()
 {
-       echo "$PREREQ"
+       echo "${PREREQ}"
 }
 
-case $1 in
-# get pre-requisites
-prereqs)
-       prereqs
-       exit 0
-       ;;
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
 esac
 
-log_begin_msg "$DESCRIPTION"
-
-location=
-for x in $(cat /proc/cmdline); do
-       case $x in
-               preseed/file=*)
-                       location="${x#preseed/file=}"
-                       ;;
-               file=*)
-                       location="${x#file=}"
-                       ;;
-               */*=*)
-                       question="${x%%=*}"
-                       value="${x#*=}"
-                       live-preseed /root "$question" "$value"
-                       ;;
-               locale=*)
-                       value="${x#*=}"
-                       live-preseed /root debian-installer/locale "$value"
-                       ;;
-       esac
-done
-
-if [ "$location" ]; then
-       chroot /root debconf-set-selections < "/root$location"
+# live-initramfs header
+
+if [ -n "${NOPRESEED}" ]
+then
+       exit 0
 fi
 
+. /scripts/live-functions
+load_confmodule
+
+log_begin_msg "Loading preseed file"
+
+# live-initramfs script
+
+if [ -e /preseed.cfg ]
+then
+       live-set-selections /preseed.cfg
+fi
+
+if [ -n "${LOCATIONS}" ]
+then
+       for item in ${LOCATIONS}
+       do
+               live-set-selections "/root$item"
+       done
+fi
+
+if [ -n "${PRESEEDS}" ]
+then
+       for preseed in ${PRESEEDS}
+       do
+               question="${preseed%%=*}"
+               value="${preseed#*=}"
+
+               live-preseed /root "${question}" "${value}"
+       done
+fi
+
+if db_get preseed/early_command && [ "$RET" ]
+then
+       sh -c "$RET"
+fi
+
+# Clear out debconf database backup files to save memory.
+rm -f /root/var/cache/debconf/*.dat-old
+
 log_end_msg
 
 exit 0