def __choose_repo(self): """ Return the path of a repository, either the only repo or presenting the user with a choice. """ repositories = Repository.all() if len(repositories) == 1: return repositories[0] elif len(repositories) == 0: print "You do not have a andsploit Module Repository." if self.confirm("Would you like to create one?") == "y": while True: path = self.ask("Path to new repository: ") try: Repository.create(path) print "Initialised repository at %s.\n" % path return Repository.all()[0] except NotEmptyException: print "The target (%s) already exists.\n" % path return None else: return None else: print "You have %d andsploit Module Repositories. Which would you like to install into?\n" % len(repositories) for i in xrange(len(repositories)): print " %5d %s" % (i+1, repositories[i]) print while(True): print "repo>", try: idx = int(raw_input().strip()) if idx >= 1 and idx <= len(repositories): print return repositories[idx-1] else: raise ValueError(idx) except ValueError: print "Not a valid selection. Please enter a number between 1 and %d." % len(repositories)
def __list_repositories(self): """ Print a list of andsploit Repositories (a) on the local system, and (b) registered as remotes. """ print "Local repositories:" for repo in Repository.all(): print " %s" % repo print