def do_enable(self, arguments): """enable a previously disabled Module repository""" if len(arguments.options) == 1: path = arguments.options[0] try: Repository.enable(path) print "Enabled repository at %s.\n" % path except UnknownRepository: print "The target (%s) is not a andsploit module repository.\n" % path else: print "usage: andsploit module repository enable /path/to/repository\n"
def do_disable(self, arguments): """hide a Module repository, without deleting its contents""" if len(arguments.options) == 1: path = arguments.options[0] try: Repository.disable(path) print "Hidden repository at %s.\n" % path except UnknownRepository: print "The target (%s) is not a andsploit module repository.\n" % path else: print "usage: andsploit module repository disable /path/to/repository\n"
def do_delete(self, arguments): """remove a andsploit module repository""" if len(arguments.options) == 1: path = arguments.options[0] try: Repository.delete(path) print "Removed repository at %s.\n" % path except UnknownRepository: print "The target (%s) is not a andsploit module repository.\n" % path else: print "usage: andsploit module repository delete /path/to/repository\n"
def do_create(self, arguments): """create a new andsploit module repository""" if len(arguments.options) == 1: path = arguments.options[0] try: Repository.create(path) print "Initialised repository at %s.\n" % path except NotEmptyException: print "The target (%s) already exists.\n" % path else: print "usage: andsploit module repository create /path/to/repository\n"
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