Example #1
0
    def __init__(self, definitions=None, env=None, default_mode=None,
                 separator=EXTENSION_SEPARATOR, search_order=None, logger=None):
        """Class init

        :param definitions: dictionary of
            Key:[function, cmd, cmd_args, Print/id string, extensions]
        :type definitions: dictionary
        :param env: environment to pass to the subprocess
        :type env: dictionary
        :param default_mode: one of the defintions keys
        :type default_mode: string
        :param separator: filename extension separator
        :type separator: string
        :param search_order: optional mode search order
        :type search_order: list of strings
        :param logger: optional logging module instance,
                       default: pyDecomp logging namespace instance
        :type logger: logging
        """
        if definitions is None:
            definitions = {}
        self.env = env or {}
        self._map = {}
        self.extension_separator = separator
        # set some defaults depending on what is being loaded
        self.mode = default_mode or 'auto'
        self.search_order = search_order or CONTENTS_SEARCH_ORDER
        if isinstance(self.search_order, str):
            self.search_order = self.search_order.split()
        self.logger = logger or log
        self.logger.info("ContentsMap: __init__(), search_order = %s",
                         str(self.search_order))
        # create the contents definitions namedtuple classes
        self._map = create_classes(definitions, self.fields)
Example #2
0
    def __init__(self, definitions=None, env=None, default_mode=None,
                 separator=EXTENSION_SEPARATOR, search_order=None, logger=None,
                 comp_prog=COMPRESSOR_PROGRAM_OPTIONS[DEFAULT_TAR],
                 decomp_opt=DECOMPRESSOR_PROGRAM_OPTIONS[DEFAULT_TAR]
                ):
        """Class init

        :param definitions: dictionary of
            Key:[function, cmd, cmd_args, Print/id string, extensions]
        :type definitions: dictionary
        :param env: environment to pass to the cmd subprocess
        :type env: dictionary
        :param default_mode: one of the definitions keys
        :type default_mode: string
        :param separator: filename extension separator
        :type separator: string
        :param search_order: optional mode search order
        :type search_order: list of strings
        :param logger: optional logging module instance,
                       default: pyDecomp logging namespace instance
        :type logger: logging
        :param comp_prog: the tar option string to use for the commpressor program
                          bsd's tar is different that linux's tar default: '-I'
        :type comp_prog: string
        :param decomp_opt: external decompressor module option
        :type decomp_opt: string
        """
        if definitions is None:
            definitions = {}
            self.loaded_type = ["None", "No definitions loaded"]
        else:
            self.loaded_type = definitions.pop('Type')
        self.env = env or {}
        self.mode_error = self.loaded_type[0] + \
            " Error: No mode was passed in or automatically detected"
        self._map = {}
        self.extension_separator = separator
        # set some defaults depending on what is being loaded
        if self.loaded_type[0] in ['Compression']:
            self.mode = default_mode or 'tbz2'
            self.compress = self._compress
            self.extract = None
        else:
            self.mode = default_mode or 'auto'
            self.compress = None
            self.extract = self._extract
        self.search_order = search_order or list(definitions)
        if isinstance(self.search_order, str):
            self.search_order = self.search_order.split()
        self.logger = logger or log
        self.comp_prog = comp_prog
        self.decomp_opt = decomp_opt
        self.logger.info("COMPRESS: __init__(), search_order = %s",
                         str(self.search_order))
        # create the (de)compression definition namedtuple classes
        self._map = create_classes(definitions, self.fields)
        binaries = set()
        for mode in self.search_order:
            binaries.update(self._map[mode].binaries)
        self.available = check_available(binaries)
Example #3
0
    def __init__(self,
                 definitions=None,
                 env=None,
                 default_mode=None,
                 separator=EXTENSION_SEPARATOR,
                 search_order=None,
                 logger=None,
                 comp_prog=COMPRESSOR_PROGRAM_OPTIONS['linux'],
                 decomp_opt=DECOMPRESSOR_PROGRAM_OPTIONS['linux'],
                 list_xattrs_opt=LIST_XATTRS_OPTIONS['linux']):
        """Class init

        :param definitions: dictionary of
            Key:[function, cmd, cmd_args, Print/id string, extensions]
        :type definitions: dictionary
        :param env: environment to pass to the subprocess
        :type env: dictionary
        :param default_mode: one of the defintions keys
        :type default_mode: string
        :param separator: filename extension separator
        :type separator: string
        :param search_order: optional mode search order
        :type search_order: list of strings
        :param logger: optional logging module instance,
                       default: pyDecomp logging namespace instance
        :type logger: logging
        """
        if definitions is None:
            definitions = {}
        self.env = env or {}
        self._map = {}
        self.extension_separator = separator
        # set some defaults depending on what is being loaded
        self.mode = default_mode or 'auto'
        self.search_order = search_order or CONTENTS_SEARCH_ORDER
        if isinstance(self.search_order, str):
            self.search_order = self.search_order.split()
        self.logger = logger or log
        self.comp_prog = comp_prog
        self.decomp_opt = decomp_opt
        self.list_xattrs_opt = list_xattrs_opt
        self.logger.info("ContentsMap: __init__(), search_order = %s",
                         str(self.search_order))
        # create the contents definitions namedtuple classes
        self._map = create_classes(definitions, self.fields)
        binaries = set()
        for mode in self.search_order:
            binaries.update(self._map[mode].binaries)
        self.available = check_available(binaries)
Example #4
0
    def __init__(self, definitions=None, env=None, default_mode=None,
                 separator=EXTENSION_SEPARATOR, search_order=None, logger=None):
        """Class init

        :param definitions: dictionary of
            Key:[function, cmd, cmd_args, Print/id string, extensions]
        :type definitions: dictionary
        :param env: environment to pass to the cmd subprocess
        :type env: dictionary
        :param default_mode: one of the definitions keys
        :type default_mode: string
        :param separator: filename extension separator
        :type separator: string
        :param search_order: optional mode search order
        :type search_order: list of strings
        :param logger: optional logging module instance,
                       default: pyDecomp logging namespace instance
        :type logger: logging
        """
        if definitions is None:
            definitions = {}
            self.loaded_type = ["None", "No definitions loaded"]
        else:
            self.loaded_type = definitions.pop('Type')
        self.env = env or {}
        self.mode_error = self.loaded_type[0] + \
            " Error: No mode was passed in or automatically detected"
        self._map = {}
        self.extension_separator = separator
        # set some defaults depending on what is being loaded
        if self.loaded_type[0] in ['Compression']:
            self.mode = default_mode or 'tbz2'
            self.compress = self._compress
            self.extract = None
        else:
            self.mode = default_mode or 'auto'
            self.compress = None
            self.extract = self._extract
        self.search_order = search_order or list(definitions)
        if isinstance(self.search_order, str):
            self.search_order = self.search_order.split()
        self.logger = logger or log
        self.logger.info("COMPRESS: __init__(), search_order = %s",
                         str(self.search_order))
        # create the (de)compression definition namedtuple classes
        self._map = create_classes(definitions, self.fields)
Example #5
0
    def __init__(self, definitions=None, env=None, default_mode=None,
                 separator=EXTENSION_SEPARATOR, search_order=None, logger=None,
                 comp_prog=COMPRESSOR_PROGRAM_OPTIONS['linux'],
                 decomp_opt=DECOMPRESSOR_PROGRAM_OPTIONS['linux'],
                 list_xattrs_opt=LIST_XATTRS_OPTIONS['linux']):
        """Class init

        :param definitions: dictionary of
            Key:[function, cmd, cmd_args, Print/id string, extensions]
        :type definitions: dictionary
        :param env: environment to pass to the subprocess
        :type env: dictionary
        :param default_mode: one of the defintions keys
        :type default_mode: string
        :param separator: filename extension separator
        :type separator: string
        :param search_order: optional mode search order
        :type search_order: list of strings
        :param logger: optional logging module instance,
                       default: pyDecomp logging namespace instance
        :type logger: logging
        """
        if definitions is None:
            definitions = {}
        self.env = env or {}
        self._map = {}
        self.extension_separator = separator
        # set some defaults depending on what is being loaded
        self.mode = default_mode or 'auto'
        self.search_order = search_order or CONTENTS_SEARCH_ORDER
        if isinstance(self.search_order, str):
            self.search_order = self.search_order.split()
        self.logger = logger or log
        self.comp_prog = comp_prog
        self.decomp_opt = decomp_opt
        self.list_xattrs_opt = list_xattrs_opt
        self.logger.info("ContentsMap: __init__(), search_order = %s",
                         str(self.search_order))
        # create the contents definitions namedtuple classes
        self._map = create_classes(definitions, self.fields)
        binaries = set()
        for mode in self.search_order:
            binaries.update(self._map[mode].binaries)
        self.available = check_available(binaries)
Example #6
0
    def __init__(self,
                 definitions=None,
                 env=None,
                 default_mode=None,
                 separator=EXTENSION_SEPARATOR,
                 search_order=None,
                 logger=None,
                 comp_prog=COMPRESSOR_PROGRAM_OPTIONS[DEFAULT_TAR],
                 decomp_opt=DECOMPRESSOR_PROGRAM_OPTIONS[DEFAULT_TAR]):
        """Class init

        :param definitions: dictionary of
            Key:[function, cmd, cmd_args, Print/id string, extensions]
        :type definitions: dictionary
        :param env: environment to pass to the cmd subprocess
        :type env: dictionary
        :param default_mode: one of the definitions keys
        :type default_mode: string
        :param separator: filename extension separator
        :type separator: string
        :param search_order: optional mode search order
        :type search_order: list of strings
        :param logger: optional logging module instance,
                       default: pyDecomp logging namespace instance
        :type logger: logging
        :param comp_prog: the tar option string to use for the commpressor program
                          bsd's tar is different that linux's tar default: '-I'
        :type comp_prog: string
        :param decomp_opt: external decompressor module option
        :type decomp_opt: string
        """
        if definitions is None:
            definitions = {}
            self.loaded_type = ["None", "No definitions loaded"]
        else:
            self.loaded_type = definitions.pop('Type')
        self.env = env or {}
        self.mode_error = self.loaded_type[0] + \
            " Error: No mode was passed in or automatically detected"
        self._map = {}
        self.extension_separator = separator
        # set some defaults depending on what is being loaded
        if self.loaded_type[0] in ['Compression']:
            self.mode = default_mode or 'tbz2'
            self.compress = self._compress
            self.extract = None
        else:
            self.mode = default_mode or 'auto'
            self.compress = None
            self.extract = self._extract
        self.search_order = search_order or list(definitions)
        if isinstance(self.search_order, str):
            self.search_order = self.search_order.split()
        self.logger = logger or log
        self.comp_prog = comp_prog
        self.decomp_opt = decomp_opt
        self.logger.info("COMPRESS: __init__(), search_order = %s",
                         str(self.search_order))
        # create the (de)compression definition namedtuple classes
        self._map = create_classes(definitions, self.fields)
        binaries = set()
        for mode in self.search_order:
            binaries.update(self._map[mode].binaries)
        self.available = check_available(binaries)