Exemplo n.º 1
0
    def do_add(self, arguments):
        """add a new remote module repository"""
        
        if len(arguments.options) == 1:
            url = arguments.options[0]

            Remote.create(url)
            
            print "Added remote: %s.\n" % url
        else:
            print "usage: andsploit module remote create http://path.to.repository/\n"
Exemplo n.º 2
0
 def __read_remote_module(self, module):
     """
     Read a module file from a remote, and return the source.
     """
     
     for url in Remote.all():
         source = Remote.get(url).download(module)
         
         # if we found the source, we return straight away - this allows us to
         # install the module from the first source that we come across
         if source != None:
             return source
     
     return None
Exemplo n.º 3
0
 def do_remove(self, arguments):
     """remove a remote module repository"""
     
     if len(arguments.options) == 1:
         url = arguments.options[0]
         
         try:
             Remote.delete(url)
             
             print "Removed remove %s.\n" % url
         except UnknownRemote:
             print "The target (%s) is not a remote module repository.\n" % url
     else:
         print "usage: andsploit module remote delete http://path.to.repository/\n"
Exemplo n.º 4
0
 def do_list(self, arguments):
     """shows a list of all remotes"""
     
     print "Remote repositories:"
     for url in Remote.all():
         print "  %s" % url
     print
Exemplo n.º 5
0
 def __get_combined_index(self):
     """
     Fetches INDEX files from all known remotes, and builds a combined INDEX
     listing of all available modules.
     """
     
     index = set([])
     
     for url in Remote.all():
         source = Remote.get(url).download("INDEX.xml")
         
         if source != None:
             modules = xml.fromstring(source)
             
             index = index.union(map(lambda m: ModuleInfo(url, m.attrib['name'], m.find("./description").text), modules.findall("./module")))
     
     return filter(lambda m: m != None and m != "", index)