in hack/release/wizard/releaseWizard.py [0:0]
def display_and_confirm(self):
try:
if self.depends:
ret_str = ""
for dep in ensure_list(self.depends):
g = state.get_group_by_id(dep)
if not g:
g = state.get_todo_by_id(dep)
if not g.is_done():
print("This step depends on '%s'. Please complete that first\n" % g.title)
return
desc = self.get_description()
if desc:
print("%s" % desc)
try:
if self.function and not self.is_done():
if not eval(self.function)(self):
return
except Exception as e:
print("Function call to %s for todo %s failed: %s" % (self.function, self.id, e))
raise e
if self.user_input and not self.is_done():
ui_list = ensure_list(self.user_input)
for ui in ui_list:
ui.run(self.state)
print()
if self.links:
print("\nLinks:\n")
for link in self.links:
print("- %s" % expand_jinja(link, self.get_vars_and_state()))
print()
cmds = self.get_commands()
if cmds:
if not self.is_done():
if not cmds.logs_prefix:
cmds.logs_prefix = self.id
cmds.run()
else:
print("This step is already completed. You have to first set it to 'not completed' in order to execute commands again.")
print()
if self.post_description:
print("%s" % self.get_post_description())
todostate = self.get_state()
if self.is_done() and len(todostate) > 2:
print("Variables registered\n")
for k in todostate:
if k == 'done' or k == 'done_date':
continue
print("* %s = %s" % (k, todostate[k]))
print()
completed = ask_yes_no("Mark task '%s' as completed?" % self.get_title())
self.set_done(completed)
state.save()
except Exception as e:
print("ERROR while executing todo %s (%s)" % (self.get_title(), e))