def available_data(mod_name):
    """
    Returns list of (oid, option) pairs
    """
    
    mod_dir = get_mod_dir(mod_name)
    files = sys_utils.get_files_from_directory(mod_dir)
    data = list()

    if not files:
        return list() # empty list
    
    for f in files:
        base = os.path.basename(f)
        components = base.split(COMPONENT_DELIM, 1)

        if len(components) == 1: # no options present
            oid = components[0]
            opts = {}
        else: # len must be 2 (assumed)
            oid, suffix = components
            opts = parse_suffix(mod_name, suffix)

        data.append ( [oid, opts] )

    return data
def retrieve_all_keys(mod_name):
    mod_dir = get_mod_dir(mod_name)
    files = sys_utils.get_files_from_directory(mod_dir)
    if files:
        return [ os.path.basename(f) for f in files ]
    else:
        return None
Exemple #3
0
def import_upx(args, opts):
    """ 
        Import the contents of a upx file. Does not import the upx file itself.
                Passes a list of imported oids.
    """
    if not args:
        raise ShellSyntaxError("No files/dir passed")
    
    oids = []
    newfiles = []
    for arg in args:
        if os.path.isdir(arg):
            print " - Processing upx files in directory %s" % arg
            files = sys_utils.get_files_from_directory(arg)
            p = progress.progress(len(files))
            for f in files:
                uoids, noids = import_upxfile(f)
                oids.extend(uoids)
                newfiles.extend(noids)
                p.tick()
                
        elif os.path.isfile(arg):
            print " - Processing file %s ..."
            uoids, noids = import_upxfile(arg)
            oids.extend(uoids)
            newfiles.extend(noids)
    
        else:
            print " - %s not found" % (arg)
    
    print " - Extracted %d files %d are new" % (len(oids), len(newfiles))
    return oids
def local_available_data(plugin_name):
    plugin_dir = os.path.join(localstore_dir, plugin_name)
    files = sys_utils.get_files_from_directory(plugin_dir)
    data_names = []
    if not files:
        return data_names
    for f in files:
        data_names.append(f)
    return data_names
def local_retrieve_all(plugin_name):
    plugin_dir = os.path.join(localstore_dir, plugin_name)
    files = sys_utils.get_files_from_directory(plugin_dir)
    results = {}
    if not files:
        return results

    for f in files:
        data = sys_utils.read_object_from_file(f)
        data_name = os.path.basename(f)
        results[data_name] = data

    return results
def retrieve_all(mod_name):
    mod_dir = get_mod_dir(mod_name)
    files = sys_utils.get_files_from_directory(mod_dir)
    results = {}
    if not files:
        return results

    for f in files:
        data = sys_utils.read_object_from_file(f)
        mangled_name = os.path.basename(f)
        results[mangled_name] = data

    return results
def local_retrieve_recent(plugin_name):
    plugin_dir = os.path.join(localstore_dir, plugin_name)

    plugin_dir = os.path.join(localstore_dir, plugin_name)
    files = sys_utils.get_files_from_directory(plugin_dir)

    best = (None,0)
    for f in files:
        if os.path.getmtime(f) > best[1]:
            best = (f, os.path.getmtime(f))

    data = sys_utils.read_object_from_file(best[0])
    if data == None:
        logger.error("Not able to retrieve data at %s", filename)
        return None
    return data
Exemple #8
0
 def import_directory(self, directory):
     """ Process the local directory calling the local import on each file
     """
     files_list = sys_utils.get_files_from_directory(directory)
     if files_list == None:
         return None, 0
     oids = []
     num_new_files = 0
     p = progress.progress(len(files_list))
     for file_location in files_list:
         oid, new_file = self.import_file(file_location)
         p.tick()
         if oid:
             oids.append(oid)
             if new_file:
                 num_new_files += 1
     oids = list(set(oids)) # assert uniqueness 
     return oids, num_new_files
Exemple #9
0
def import_directory(directory):
    files = sys_utils.get_files_from_directory(directory)
    if files == None:
        return None, 0
    return import_files(files)