Exemplo n.º 1
0
    def __init__(self,
                 args=None,
                 stdout=None,
                 stdin=None,
                 stderr=None,
                 root=None):
        '''
        Creates and describes all possible polymeraZe options and creates
        a Message object.
        '''
        BareConfig.__init__(self,
                            stdout=stdout,
                            stderr=stderr,
                            stdin=stdin,
                            root=root)

        # get a couple BareConfig items
        self.defaults = self.get_defaults()
        self.output = self.get_option('output')

        self.parser = ArgumentParser(usage=_USAGE)

        self.parser.add_argument('-H',
                                 '--setup-help',
                                 action='store_true',
                                 help='Print the NEW INSTALL help messages.')

        self.parser.add_argument('-V',
                                 '--version',
                                 action='version',
                                 version=VERSION)

        #-----------------------------------------------------------------
        # Main Options

        actions = self.parser.add_argument_group('<Actions>')

        actions.add_argument(
            '-a',
            '--add',
            nargs='+',
            help='Add the given overlay from the cached remote li'
            'st to your locally installed overlays.. Specify "ALL" '
            'to add all overlays from the remote list.')

        actions.add_argument(
            '-d',
            '--delete',
            nargs='+',
            help='Remove the given overlay from your locally inst'
            'alled overlays. Specify "ALL" to remove all overlays.')

        actions.add_argument(
            '-D',
            '--disable',
            nargs='+',
            help='Disable the given overlay from portage. Specify'
            ' "ALL" to disable all installed overlay.')

        actions.add_argument(
            '-E',
            '--enable',
            nargs='+',
            help='Re-enable a previously disabled overlay. Specif'
            'y "ALL" to enable all installed overlays.')

        actions.add_argument(
            '-f',
            '--fetch',
            action='store_true',
            help='Fetch a remote list of overlays. This option is'
            ' deprecated. The fetch operation will be performed by '
            'default when you run sync, sync-all, or list.')

        actions.add_argument(
            '-i',
            '--info',
            nargs='+',
            help='Display information about the specified overlay'
            '.')

        actions.add_argument('-L',
                             '--list',
                             action='store_true',
                             help='List the contents of the remote list.')

        actions.add_argument('-l',
                             '--list-local',
                             action='store_true',
                             help='List the locally installed overlays.')

        actions.add_argument('-n',
                             '--nofetch',
                             action='store_true',
                             help='Do not fetch a remote list of overlays.')

        actions.add_argument(
            '-p',
            '--priority',
            action='store',
            help='Use this with the --add switch to set the prior'
            'ity of the added overlay. This will influence the sort'
            'ing order of the overlays in the PORTDIR_OVERLAY varia'
            'ble.')

        actions.add_argument(
            '-r',
            '--readd',
            nargs='+',
            help='Remove and re-add the given overlay from the cached'
            ' remote list to your locally installed overlays... Specify'
            ' "ALL" to re-add all local overlays.')

        actions.add_argument(
            '-s',
            '--sync',
            nargs='+',
            help='Update the specified overlay. Use "ALL" as para'
            'meter to synchronize all overlays.')

        actions.add_argument('-S',
                             '--sync-all',
                             action='store_true',
                             help='Update all overlays.')

        #-----------------------------------------------------------------
        # Path Options

        path_opts = self.parser.add_argument_group('<Path options>')

        path_opts.add_argument(
            '-c',
            '--config',
            action='store',
            default=self.defaults['config'],
            # Force interpolation (to prevent argparse tracebacks)
            help='Path to the config file [default: '
            '%s].' % (self.defaults['config'] % self.defaults))

        path_opts.add_argument('-C',
                               '--configdir',
                               action = 'store',
                               default = self.defaults['configdir'],
                               help = 'Directory path to user for all layman '
                               'configuration information [default:'\
                               + self.defaults['configdir'] + '].')

        path_opts.add_argument('-o',
                               '--overlays',
                               nargs = '+',
                               help = 'The list of overlays [default: ' \
                               + self.defaults['overlays'] + '].')

        path_opts.add_argument(
            '-O',
            '--overlay_defs',
            action='store',
            default=self.defaults['overlay_defs'],
            # Force interpolation (to prevent argparse tracebacks)
            help='Path to additional overlay.xml files [default: '
            '%s].' % (self.defaults['overlay_defs'] % self.defaults))

        path_opts.add_argument(
            '-z',
            '--storage',
            action='store',
            default=self.defaults['storage'],
            help='Directory path to user for layman overlay inst'
            'allation location [default: /var/lib/layman].')

        #-----------------------------------------------------------------
        # Output Options

        out_opts = self.parser.add_argument_group('<Output options>')

        out_opts.add_argument(
            '--debug-level',
            action='store',
            type=int,
            help='A value between 0 and 10. 0 means no debugging '
            'messages will be selected, 10 selects all debugging me'
            'ssages. Default is "4".')

        out_opts.add_argument(
            '-k',
            '--nocheck',
            action='store_true',
            help='Do not check overlay definitions and do not i'
            'ssue a warning if description or contact information'
            ' are missing.')

        out_opts.add_argument(
            '-N',
            '--nocolor',
            action='store_true',
            help='Remove color codes from the layman output.')

        out_opts.add_argument(
            '-q',
            '--quiet',
            action='store_true',
            help='Yield no output. Please be careful with this op'
            'tion: If the processes spawned by layman when adding o'
            'r synchronizing overlays require any input layman will'
            ' hang without telling you why. This might happen for e'
            'xample if your overlay resides in subversion and the S'
            'SL certificate of the server needs acceptance.')

        out_opts.add_argument(
            '-Q',
            '--quietness',
            action='store',
            type=int,
            default=4,
            help='Set the level of output (0-4). Default: 4. Once'
            ' you set this below 2 the same warning as given for --'
            'quiet applies!')

        out_opts.add_argument(
            '-v',
            '--verbose',
            action='store_true',
            help='Increase the amount of output and describe the '
            'overlays.')

        out_opts.add_argument(
            '-W',
            '--width',
            action='store',
            type=int,
            default=0,
            help='Sets the screen width. This setting is usually '
            'not required as layman is capable of detecting the '
            'available number of columns automatically.')

        #-----------------------------------------------------------------
        # Additional Options
        etc_opts = self.parser.add_argument_group('<Additional options>')

        etc_opts.add_argument('--protocol_filter',
                              nargs='+',
                              help='Sets the protocol filter that determines '
                              'which protocols will be used when adding '
                              'overlays or updating their source URLs.')

        #-----------------------------------------------------------------
        # Debug Options

        #self.output.cli_opts(self.parser)

        # Parse the command line first since we need to get the config
        # file option.

        # If no flags are present print out usage
        if len(sys.argv) == 1:
            self.output.notice('usage:%s' % _USAGE)
            sys.exit(0)

        self.options = self.parser.parse_args()
        self.options = vars(self.options)
        # Applying interpolation of values
        for v in ['configdir', 'config']:
            self.options[v] = self.options[v] % self.options
            self.defaults[v] = self.options[v]

        if ('debug_level' in self.options and self.options['debug_level']):
            dbglvl = int(self.options['debug_level'])
            if dbglvl < 0:
                dbglvl = 0
            if dbglvl > 10:
                dbglvl = 10
            self.output.set_debug_level(dbglvl)

        if self.options['nocolor']:
            self.output.set_colorize(OFF)

        # Set only alternate config settings from the options
        if self.options['config'] is not None:
            self.defaults['config'] = self.options['config']
            self.output.debug('ARGSPARSER: Got config file at ' + \
                self.defaults['config'], 8)
        else:  # fix the config path
            self.defaults['config'] = self.defaults['config'] \
                % {'configdir': self.defaults['configdir']}

        self._options['setup_help'] = self.options['setup_help']

        # Now parse the config file
        self.output.debug('ARGSPARSER: Reading config file at ' + \
            self.defaults['config'], 8)
        self.read_config(self.defaults)

        # Handle the overlay_defs option:
        if ('%(configdir)s' in self.options['overlay_defs']
                and self.config.has_option('MAIN', 'overlay_defs')):
            # If it hasn't been interpolated then it's not being set as a
            # command line argument. So we first try to set it to the config
            # value.
            self.options['overlay_defs'] = self.config.get(
                'MAIN', 'overlay_defs')
        elif self.defaults['overlay_defs'] == self.options['overlay_defs']:
            # If it isn't a command line argument and no config option then
            # set it to the default.
            self.defaults[
                'overlay_defs'] = self.defaults['overlay_defs'] % self.options
            self.options['overlay_defs'] = self.defaults['overlay_defs']

        # handle quietness
        if self.options['quiet']:
            self.set_option('quiet', True)
        elif self.options['quietness']:
            self.set_option('quietness', self.options['quietness'])
Exemplo n.º 2
0
    def __init__(self, args=None, stdout=None, stdin=None, stderr=None,
                root=None
                ):
        '''
        Creates and describes all possible polymeraZe options and creates
        a Message object.
        '''
        BareConfig.__init__(self, stdout=stdout, stderr=stderr,
                            stdin=stdin, root=root)

        # get a couple BareConfig items
        self.defaults = self.get_defaults()
        self.output = self.get_option('output')

        self.parser = ArgumentParser(
            usage   = _USAGE)

        self.parser.add_argument('-H',
                        '--setup-help',
                        action = 'store_true',
                        help = 'Print the NEW INSTALL help messages.')

        self.parser.add_argument('-V',
                          '--version',
                          action = 'version',
                          version = VERSION)

        #-----------------------------------------------------------------
        # Main Options

        actions = self.parser.add_argument_group('<Actions>')

        actions.add_argument('-a',
                             '--add',
                             nargs = '+',
                             help = 'Add the given overlay from the cached remote li'
                             'st to your locally installed overlays.. Specify "ALL" '
                             'to add all overlays from the remote list.')

        actions.add_argument('-d',
                             '--delete',
                             nargs = '+',
                             help = 'Remove the given overlay from your locally inst'
                             'alled overlays. Specify "ALL" to remove all overlays.')

        actions.add_argument('-D',
                             '--disable',
                             nargs = '+',
                             help = 'Disable the given overlay from portage. Specify'
                             ' "ALL" to disable all installed overlay.')

        actions.add_argument('-E',
                             '--enable',
                             nargs = '+',
                             help = 'Re-enable a previously disabled overlay. Specif'
                             'y "ALL" to enable all installed overlays.')

        actions.add_argument('-f',
                             '--fetch',
                             action = 'store_true',
                             help = 'Fetch a remote list of overlays. This option is'
                             ' deprecated. The fetch operation will be performed by '
                             'default when you run sync, sync-all, or list.')

        actions.add_argument('-i',
                             '--info',
                             nargs = '+',
                             help = 'Display information about the specified overlay'
                             '.')

        actions.add_argument('-L',
                             '--list',
                             action = 'store_true',
                             help = 'List the contents of the remote list.')

        actions.add_argument('-l',
                             '--list-local',
                             action = 'store_true',
                             help = 'List the locally installed overlays.')

        actions.add_argument('-n',
                             '--nofetch',
                             action = 'store_true',
                             help = 'Do not fetch a remote list of overlays.')

        actions.add_argument('-p',
                             '--priority',
                             action = 'store',
                             help = 'Use this with the --add switch to set the prior'
                             'ity of the added overlay. This will influence the sort'
                             'ing order of the overlays in the PORTDIR_OVERLAY varia'
                             'ble.')

        actions.add_argument('-r',
                             '--readd',
                             nargs = '+',
                             help = 'Remove and re-add the given overlay from the cached'
                             ' remote list to your locally installed overlays... Specify'
                             ' "ALL" to re-add all local overlays.')

        actions.add_argument('-s',
                             '--sync',
                             nargs = '+',
                             help = 'Update the specified overlay. Use "ALL" as para'
                            'meter to synchronize all overlays.')

        actions.add_argument('-S',
                             '--sync-all',
                             action = 'store_true',
                             help = 'Update all overlays.')

        #-----------------------------------------------------------------
        # Path Options

        path_opts = self.parser.add_argument_group('<Path options>')

        path_opts.add_argument('-c',
                               '--config',
                               action = 'store',
                               default = self.defaults['config'],
                               # Force interpolation (to prevent argparse tracebacks)
                               help = 'Path to the config file [default: '
                               '%s].' % (self.defaults['config'] %self.defaults))

        path_opts.add_argument('-C',
                               '--configdir',
                               action = 'store',
                               default = self.defaults['configdir'],
                               help = 'Directory path to user for all layman '
                               'configuration information [default:'\
                               + self.defaults['configdir'] + '].')

        path_opts.add_argument('-o',
                               '--overlays',
                               nargs = '+',
                               help = 'The list of overlays [default: ' \
                               + self.defaults['overlays'] + '].')

        path_opts.add_argument('-O',
                               '--overlay_defs',
                               action = 'store',
                               default = self.defaults['overlay_defs'],
                               # Force interpolation (to prevent argparse tracebacks)
                               help = 'Path to aditional overlay.xml files [default: '
                               '%s].' % (self.defaults['overlay_defs'] %self.defaults))

        path_opts.add_argument('-z',
                               '--storage',
                               action = 'store',
                               default = self.defaults['storage'],
                               help = 'Directory path to user for layman overlay inst'
                               'allation location [default: /var/lib/layman].')

        #-----------------------------------------------------------------
        # Output Options

        out_opts = self.parser.add_argument_group('<Output options>')

        out_opts.add_argument('--debug-level',
                              action = 'store',
                              type = int,
                              help = 'A value between 0 and 10. 0 means no debugging '
                              'messages will be selected, 10 selects all debugging me'
                              'ssages. Default is "4".')

        out_opts.add_argument('-k',
                              '--nocheck',
                              action = 'store_true',
                              help = 'Do not check overlay definitions and do not i'
                              'ssue a warning if description or contact information'
                              ' are missing.')

        out_opts.add_argument('-N',
                              '--nocolor',
                              action = 'store_true',
                              help = 'Remove color codes from the layman output.')

        out_opts.add_argument('-q',
                              '--quiet',
                              action = 'store_true',
                              help = 'Yield no output. Please be careful with this op'
                              'tion: If the processes spawned by layman when adding o'
                              'r synchronizing overlays require any input layman will'
                              ' hang without telling you why. This might happen for e'
                              'xample if your overlay resides in subversion and the S'
                              'SL certificate of the server needs acceptance.')

        out_opts.add_argument('-Q',
                              '--quietness',
                              action = 'store',
                              type = int,
                              default = 4,
                              help = 'Set the level of output (0-4). Default: 4. Once'
                              ' you set this below 2 the same warning as given for --'
                              'quiet applies!')

        out_opts.add_argument('-v',
                              '--verbose',
                              action = 'store_true',
                              help = 'Increase the amount of output and describe the '
                              'overlays.')

        out_opts.add_argument('-W',
                              '--width',
                              action = 'store',
                              type = int,
                              default = 0,
                              help = 'Sets the screen width. This setting is usually '
                              'not required as layman is capable of detecting the '
                              'available number of columns automatically.')

        #-----------------------------------------------------------------
        # Additional Options
        etc_opts = self.parser.add_argument_group('<Additional options>')

        etc_opts.add_argument('--protocol_filter',
                              nargs = '+',
                              help = 'Sets the protocol filter that determines '
                              'which protocols will be used when adding '
                              'overlays or updating their source URLs.')

        #-----------------------------------------------------------------
        # Debug Options

        #self.output.cli_opts(self.parser)

        # Parse the command line first since we need to get the config
        # file option.

        # If no flags are present print out usage
        if len(sys.argv) == 1:
            self.output.notice('usage:%s' % _USAGE)
            sys.exit(0)

        self.options = self.parser.parse_args()
        self.options = vars(self.options)
        # Applying interpolation of values
        for v in ['configdir', 'config']:
            self.options[v] = self.options[v] % self.options
            self.defaults[v] = self.options[v]

        if ('debug_level' in self.options and
            self.options['debug_level']):
            dbglvl = int(self.options['debug_level'])
            if dbglvl < 0:
                dbglvl = 0
            if dbglvl > 10:
                dbglvl = 10
            self.output.set_debug_level(dbglvl)

        if self.options['nocolor']:
            self.output.set_colorize(OFF)

        # Set only alternate config settings from the options
        if self.options['config'] is not None:
            self.defaults['config'] = self.options['config']
            self.output.debug('ARGSPARSER: Got config file at ' + \
                self.defaults['config'], 8)
        else: # fix the config path
            self.defaults['config'] = self.defaults['config'] \
                % {'configdir': self.defaults['configdir']}

        self._options['setup_help'] = self.options['setup_help']

        # Now parse the config file
        self.output.debug('ARGSPARSER: Reading config file at ' + \
            self.defaults['config'], 8)
        self.read_config(self.defaults)


        # Handle the overlay_defs option:
        if ('%(configdir)s' in self.options['overlay_defs']
            and self.config.has_option('MAIN', 'overlay_defs')):
            # If it hasn't been interpolated then it's not being set as a
            # command line argument. So we first try to set it to the config
            # value.
            self.options['overlay_defs'] = self.config.get('MAIN',
                                                           'overlay_defs')
        elif self.defaults['overlay_defs'] == self.options['overlay_defs']:
            # If it isn't a command line argument and no config option then
            # set it to the default.
            self.defaults['overlay_defs'] = self.defaults['overlay_defs'] % self.options
            self.options['overlay_defs'] = self.defaults['overlay_defs']

        # handle quietness
        if self.options['quiet']:
            self.set_option('quiet', True)
        elif self.options['quietness']:
            self.set_option('quietness', self.options['quietness'])
Exemplo n.º 3
0
    def __init__(self, args=None, stdout=None, stdin=None, stderr=None,
                root=None
                ):
        '''
        Creates and describes all possible polymeraZe options and creates
        a Message object.

        >>> import os.path
        >>> here = os.path.dirname(os.path.realpath(__file__))
        >>> sys.argv.append('--config')
        >>> sys.argv.append(here + '/../etc/layman.cfg')
        >>> sys.argv.append('--overlay_defs')
        >>> sys.argv.append('')
        >>> a = ArgsParser()
        >>> a['overlays']
        '\\nhttp://www.gentoo.org/proj/en/overlays/repositories.xml'
        >>> sorted(a.keys())
        ['bzr_addopts', 'bzr_command', 'bzr_postsync', 'bzr_syncopts', 'cache', 'config', 'configdir', 'custom_news_pkg', 'cvs_addopts', 'cvs_command', 'cvs_postsync', 'cvs_syncopts', 'darcs_addopts', 'darcs_command', 'darcs_postsync', 'darcs_syncopts', 'g-common_command', 'g-common_generateopts', 'g-common_postsync', 'g-common_syncopts', 'git_addopts', 'git_command', 'git_email', 'git_postsync', 'git_syncopts', 'git_user', 'installed', 'local_list', 'make_conf', 'mercurial_addopts', 'mercurial_command', 'mercurial_postsync', 'mercurial_syncopts', 'news_reporter', 'nocheck', 'overlay_defs', 'overlays', 'proxy', 'quietness', 'rsync_command', 'rsync_postsync', 'rsync_syncopts', 'storage', 'svn_addopts', 'svn_command', 'svn_postsync', 'svn_syncopts', 't/f_options', 'tar_command', 'tar_postsync', 'umask', 'width']
                '''

        BareConfig.__init__(self, stdout=stdout, stderr=stderr,
                            stdin=stdin, root=root)
        if args == None:
            args = sys.argv

        # get a couple BareConfig items
        self.defaults = self.get_defaults()
        self.output = self.get_option('output')

        self.parser = OptionParser(
            usage   = _USAGE,
            version = VERSION)

        #-----------------------------------------------------------------
        # Main Options

        group = OptionGroup(self.parser,
                            '<Actions>')

        group.add_option('-a',
                         '--add',
                         action = 'append',
                         help = 'Add the given overlay from the cached remote li'
                         'st to your locally installed overlays.. Specify "ALL" '
                         'to add all overlays from the remote list.')

        group.add_option('-d',
                         '--delete',
                         action = 'append',
                         help = 'Remove the given overlay from your locally inst'
                         'alled overlays. Specify "ALL" to remove all overlays')

        group.add_option('-s',
                         '--sync',
                         action = 'append',
                         help = 'Update the specified overlay. Use "ALL" as para'
                         'meter to synchronize all overlays')

        group.add_option('-i',
                         '--info',
                         action = 'append',
                         help = 'Display information about the specified overlay'
                         '.')

        group.add_option('-S',
                         '--sync-all',
                         action = 'store_true',
                         help = 'Update all overlays.')

        group.add_option('-L',
                         '--list',
                         action = 'store_true',
                         help = 'List the contents of the remote list.')

        group.add_option('-l',
                         '--list-local',
                         action = 'store_true',
                         help = 'List the locally installed overlays.')

        group.add_option('-f',
                         '--fetch',
                         action = 'store_true',
                         help = 'Fetch a remote list of overlays. This option is'
                         ' deprecated. The fetch operation will be performed by '
                         'default when you run sync, sync-all, or list.')

        group.add_option('-n',
                         '--nofetch',
                         action = 'store_true',
                         help = 'Do not fetch a remote list of overlays.')

        group.add_option('-p',
                         '--priority',
                         action = 'store',
                         help = 'Use this with the --add switch to set the prior'
                         'ity of the added overlay. This will influence the sort'
                         'ing order of the overlays in the PORTDIR_OVERLAY varia'
                         'ble.')

        self.parser.add_option_group(group)

        #-----------------------------------------------------------------
        # Additional Options

        group = OptionGroup(self.parser,
                            '<Path options>')

        group.add_option('-c',
                         '--config',
                         action = 'store',
                         help = 'Path to the config file [default: ' \
                         + self.defaults['config'] + '].')

        group.add_option('-O',
                         '--overlay_defs',
                         action = 'store',
                         help = 'Path to aditional overlay.xml files [default: '\
                         + self.defaults['overlay_defs'] + '].')

        group.add_option('-o',
                         '--overlays',
                         action = 'append',
                         help = 'The list of overlays [default: ' \
                         + self.defaults['overlays'] + '].')

        self.parser.add_option_group(group)

        #-----------------------------------------------------------------
        # Output Options

        group = OptionGroup(self.parser,
                            '<Output options>')

        group.add_option('-v',
                         '--verbose',
                         action = 'store_true',
                         help = 'Increase the amount of output and describe the '
                         'overlays.')

        group.add_option('-q',
                         '--quiet',
                         action = 'store_true',
                         help = 'Yield no output. Please be careful with this op'
                         'tion: If the processes spawned by layman when adding o'
                         'r synchronizing overlays require any input layman will'
                         ' hang without telling you why. This might happen for e'
                         'xample if your overlay resides in subversion and the S'
                         'SL certificate of the server needs acceptance.')

        group.add_option('-N',
                         '--nocolor',
                         action = 'store_true',
                         help = 'Remove color codes from the layman output.')

        group.add_option('-Q',
                         '--quietness',
                         action = 'store',
                         type = 'int',
                         default = '4',
                         help = 'Set the level of output (0-4). Default: 4. Once'
                         ' you set this below 2 the same warning as given for --'
                         'quiet applies! ')

        group.add_option('-W',
                         '--width',
                         action = 'store',
                         type = 'int',
                         default = '0',
                         help = 'Sets the screen width. This setting is usually '
                         'not required as layman is capable of detecting the '
                         'available number of columns automatically.')

        group.add_option('-k',
                         '--nocheck',
                         action = 'store_true',
                         help = 'Do not check overlay definitions and do not i'
                         'ssue a warning if description or contact information'
                         ' are missing.')

        group.add_option('--debug-level',
                         action = 'store',
                         type = 'int',
                         help = 'A value between 0 and 10. 0 means no debugging '
                         'messages will be selected, 10 selects all debugging me'
                         'ssages. Default is "4".')


        self.parser.add_option_group(group)

        #-----------------------------------------------------------------
        # Debug Options

        #self.output.cli_opts(self.parser)

        # Parse the command line first since we need to get the config
        # file option.
        if len(args) == 1:
            self.output.notice('Usage:%s' % _USAGE)
            sys.exit(0)

        (self.options, remain_args) = self.parser.parse_args(args)
        # remain_args starts with something like "bin/layman" ...
        if len(remain_args) > 1:
            self.parser.error("ArgsParser(): Unhandled parameters: %s"
                % ', '.join(('"%s"' % e) for e in remain_args[1:]))

        # handle debugging
        #self.output.cli_handle(self.options)

        if (self.options.__dict__.has_key('debug_level') and
            self.options.__dict__['debug_level']):
            dbglvl = int(self.options.__dict__['debug_level'])
            if dbglvl < 0:
                dbglvl = 0
            if dbglvl > 10:
                dbglvl = 10
            self.output.set_debug_level(dbglvl)

        if self.options.__dict__['nocolor']:
            self.output.set_colorize(OFF)

        # Set only alternate config settings from the options
        if self.options.__dict__['config'] is not None:
            self.defaults['config'] = self.options.__dict__['config']
            self.output.debug('ARGSPARSER: Got config file at ' + \
                self.defaults['config'], 8)
        else: # fix the config path
            self.defaults['config'] = self.defaults['config'] \
                % {'configdir': self.defaults['configdir']}
        if self.options.__dict__['overlay_defs'] is not None:
            self.defaults['overlay_defs'] = self.options.__dict__['overlay_defs']
            self.output.debug('ARGSPARSER: Got overlay_defs location at ' + \
                self.defaults['overlay_defs'], 8)

        # Now parse the config file
        self.output.debug('ARGSPARSER: Reading config file at ' + \
            self.defaults['config'], 8)
        self.read_config(self.defaults)

        # handle quietness
        if self.options.__dict__['quiet']:
            self.set_option('quiet', True)
        elif self.options.__dict__['quietness']:
            self.set_option('quietness', self.options.__dict__['quietness'])