]> gitweb.fluxo.info Git - kvm-manager.git/commitdiff
accept preseed files in di-maker
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Sun, 12 Dec 2010 01:25:24 +0000 (20:25 -0500)
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Sun, 12 Dec 2010 01:25:24 +0000 (20:25 -0500)
di-maker

index 5a6d69cb09b77e02b872974126f82e2fc1d7d5b6..7ce9131902db38701040bb28e61a3ea1d2438853 100755 (executable)
--- a/di-maker
+++ b/di-maker
@@ -12,6 +12,10 @@ set -e
 
 output="$1"
 
+# optionally specify the second argument as a preseed file:
+
+preseed="$2"
+
 SUITE=${SUITE:-stable}
 ARCH=${ARCH:-amd64}
 DISTRO=${DISTRO:-debian}
@@ -26,6 +30,15 @@ if [ -e "$output" ] ; then
     exit 1
 fi
 
+preseed_args=''
+if [ "$preseed" ] ; then
+    if ! [ -r "$preseed" ] ; then
+        printf "could not read preseed file '%s'\n" "$preseed" >&2
+        exit 1
+    fi
+    checksum=$(md5sum - < "$preseed"  | cut -f1 -d\  )
+    preseed_args="preseed/file=/cdrom/preseed.cfg preseed/file/checksum=$checksum"
+fi
 
 WORKDIR=$(mktemp -d)
 
@@ -47,7 +60,7 @@ esac
 KERNEL=linux
 INITRAMFS=initrd.gz
 BOOTINSTRUCTIONS="
-  linux /$KERNEL verbose -- console=ttyS0,115200n8
+  linux /$KERNEL verbose $preseed_args -- console=ttyS0,115200n8 
   initrd /$INITRAMFS
 "
 
@@ -74,6 +87,10 @@ esac
 
 ( cd "$WORKDIR" && wget "$BASEPATH"/{$KERNEL,$INITRAMFS} )
 
+if [ "$preseed" ]; then
+    cp "$preseed" "${WORKDIR}/preseed.cfg"
+fi
+
 mkdir -p "$WORKDIR/boot/grub"