postinst script, nicer pathnames, and read password hash from a file
authorGreg Price <price@mit.edu>
Sun, 28 Oct 2007 06:47:50 +0000 (02:47 -0400)
committerGreg Price <price@mit.edu>
Sun, 28 Oct 2007 06:47:50 +0000 (02:47 -0400)
The postinst script has been tested by running it directly,
but I still haven't attempted actually building and installing
the package.

svn path=/trunk/packages/sipb-xen-guest-installer/sipb-xen-guest-installer/; revision=221

debian/sipb-xen-guest-installer.postinst [new file with mode: 0755]
files/usr/sbin/sipb-xen-make-iso

diff --git a/debian/sipb-xen-guest-installer.postinst b/debian/sipb-xen-guest-installer.postinst
new file mode 100755 (executable)
index 0000000..8b81a90
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/sh
+# postinst script for sipb-xen-guest-installer
+#
+# see: dh_installdeb(1)
+
+set -e
+set -x
+#set -n
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <postinst> `abort-remove'
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    configure)
+       for d in /srv/guest-installer/*; do
+           # download the actual iso, unpack it, patch it.
+           wget -nc -i $d/iso.url -O $d/cdrom.orig.iso
+           MOUNTDIR=$(mktemp -d /mnt/sipb-xen-guest-installer.cdrom.XXXXXX)
+           mount -t iso9660 -o loop $d/cdrom.orig.iso $MOUNTDIR
+           rm -rf $d/cdrom.orig; cp -a $MOUNTDIR $d/cdrom.orig
+           umount $MOUNTDIR; rmdir $MOUNTDIR
+           rm -rf $d/cdrom; cp -a $d/cdrom.orig $d/cdrom
+           patch -d $d/cdrom -p1 <$d/cdrom.patch
+       done
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
index 82abba9..97b651e 100755 (executable)
@@ -6,13 +6,17 @@ import shutil
 import tempfile
 from subprocess import call
 
-def make_debian_cd(basetree, passhash):
-  old_preseed = file(os.path.join(basetree, 'preseed.cfg'))
+data_dir = '/srv/guest-installer'
+
+def make_debian_cd(name, passhashfile):
+  basetree = os.path.join(data_dir, name)
   tmptree = tempfile.mkdtemp('', 'auto-install.', '/tmp')
   cdtree = os.path.join(tmptree, 'cdrom')
   shutil.copytree(os.path.join(basetree, 'cdrom'), cdtree, symlinks=True)
   new_preseed = file(os.path.join(cdtree, 'preseed.cfg'), 'w')
+  old_preseed = file(os.path.join(basetree, 'preseed.cfg'))
   new_preseed.write(old_preseed.read())
+  passhash = file(passhashfile).read()
   new_preseed.write('d-i passwd/root-password-crypted password '+passhash+'\n')
   new_preseed.close()
   output_iso = os.path.join(tmptree, 'install.iso')