7 from subprocess import call
9 data_dir = '/srv/guest-installer'
11 def make_debian_cd(name, passhashfile):
12 basetree = os.path.join(data_dir, name)
13 tmptree = tempfile.mkdtemp('', 'auto-install.', '/tmp')
14 cdtree = os.path.join(tmptree, 'cdrom')
15 shutil.copytree(os.path.join(basetree, 'cdrom'), cdtree, symlinks=True)
16 new_preseed = file(os.path.join(cdtree, 'preseed.cfg'), 'w')
17 old_preseed = file(os.path.join(basetree, 'preseed.cfg'))
18 new_preseed.write(old_preseed.read())
19 passhash = file(passhashfile).read()
20 new_preseed.write('d-i passwd/root-password-crypted password '+passhash+'\n')
22 output_iso = os.path.join(tmptree, 'install.iso')
23 call('''mkisofs -r -V "SIPB-Xen_Custom_Install_CD" -cache-inodes -J -l
24 -b isolinux/isolinux.bin -c isolinux/boot.cat
25 -no-emul-boot -boot-load-size 4 -boot-info-table'''.split()
26 + ['-o', output_iso, cdtree])
29 if __name__ == '__main__':
30 print make_debian_cd(*sys.argv[1:])