def interactiveMenu(self): done = [] last_choice = None while True: # Show the user their previously completed operations and # a suggested next op, to remind them where they are in # the release process (useful after long operations that # may have caused lunch or an extended context switch). if last_choice is not None: last_command = self.MENU_ORDER[last_choice] else: last_command = None suggested_next = self.MENU_ORDER.index( self.MENU_SUGGESTIONS[last_command]) try: choice = io.getChoice('Main menu:', 'Your choice?', self.MENU_STRINGS, done=done, suggest=suggested_next) except (KeyboardInterrupt, error.AbortedByUser): log.info('Exiting.') return try: self.MENU_ORDER[choice](self) except error.Error, e: log.error(str(e)) else: done.append(choice) last_choice = choice
def switchToBranch(self): """Switch to another Melange release branch""" branches = self._listBranches() if not branches: raise error.ExpectationFailed( 'No branches available. Please import one.') choice = io.getChoice('Available release branches:', 'Your choice?', branches, suggest=len(branches)-1) self._switchBranch(branches[choice])