--- /dev/null
+#!/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
+
+
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')