Example #1
0
    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)
Example #2
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'])