def __init__(self): """ Collected arguments """ self.__filelock = lock.FileLock(LOCKFILE, folder=config.get('general.root'), timeout=0.1) self._args = docopt(__doc__, version='Archive 1.0') submodules = { 'init': self.handle_init, 'crawler': self.handle_crawler, 'javadapter': self.handle_javadapter, 'db': self.handle_db, 'config': self.handle_config, 'repair': self.handle_repair } try: loglevel = self._args['--loglevel'] if loglevel is not None: loglevel = loglevel.upper() severity = getattr(logging, loglevel) else: raise KeyError except KeyError: severity = logging.INFO except AttributeError: print('Error: \"loglevel\" is not valid severity level') print(__doc__) sys.exit(-1) try: logging.basicConfig(level=severity, filename=os.path.join(paths.get_log_dir(), 'archive.log'), format='%(asctime)s - %(levelname)s - %(message)s') pass except IOError as err: # Disable warning for initialization if self._args['init'] is False: print('Cannot open log - file structure probably does not exist yet:', err) # Set up config to another file if desired try: if self._args['init'] is False and self._args['--config']: config.load(os.path.abspath(self._args['--config'])) elif self._args['init'] is False: config.load('webarchive.conf.xml') except IOError as err: print('FATAL: Unable to locate config:', err) sys.exit(-4) # iterating through arguments for module, handler in submodules.items(): if self._args[module]: try: handler() except lock.FileLockException: print("archive is currently locked with global.lock.") sys.exit(0)
def handle_config(self): """ Invokes Config Handler operations """ if self._args['--get']: print(config.get(self._args['--get'])) elif self._args['--set']: config.set(self._args['--set'], self._args['<value>']) elif self._args['--default']: print(config.get_default(self._args['--default'])) elif self._args['--config']: config.load(self._args['--config'])