PAGE_WIDTH = 70
+class WizardExit(Exception):
+ pass
+
+
class Wizard:
def __init__(self, session):
self.session = session
def run(self):
idx = 0
while True:
- idx += self.pages[idx].run(self.session, idx, len(self.pages))
+ try:
+ idx += self.pages[idx].run(self.session, idx, len(self.pages))
+ except WizardExit:
+ return False
if idx >= len(self.pages):
break
class WizardPage:
NEXT = 1
PREV = -1
- EXIT = -255
def run(self, session, index, total):
raise NotImplementedError
if ret == d.DIALOG_CANCEL:
return self.PREV
elif ret == d.DIALOG_EXTRA:
- return self.EXIT
+ raise WizardExit
elif ret == d.DIALOG_OK:
return self.NEXT
device.out = out
image_os.out = out
- out.output()
+ out.clear()
#Sysprep
device.mount(False)
#Shrink
size = device.shrink()
+
metadata.update(device.meta)
+ metadata['DESCRIPTION'] = wizard['ImageDescription']
#MD5
md5 = MD5(out)