示例#1
0
    def execute(self):
        """Starts the application."""

        # we don't take any arguments for now
        parser = argparse.ArgumentParser()
        parser.add_argument('--config-directory', help='config directory location')
        parser.add_argument('--create-config', action='store_true', help='generate default configuration files')
        parser.add_argument('--start-webpanel', action='store_true', help='start the web panel')
        args = parser.parse_args()

        # determine config directory location
        self.__config_dir = args.config_directory if args.config_directory else defaults.config_folder_path

        # generate config if should be generated end stop execution
        if args.create_config:
            print("Generating config directory: {}".format(self.__config_dir))
            config_generator.create_config_directory(self.__config_dir)
            return

        self.__config = config_reader.read_config_file(defaults.get_global_config_path(self.__config_dir))

        self.__start_processing()

        # filter enabled modules from config and start them
        enabled_modules = {k: v for (k, v) in self.__config.items('modules') if v == 'True'}
        enabled_modules_names = map(lambda item: item[0], enabled_modules.items())

        self.__start_modules(enabled_modules_names)

        if args.start_webpanel:
            self.__start_webpanel()
示例#2
0
    def execute(self):
        """Starts the application."""

        # we don't take any arguments for now
        parser = argparse.ArgumentParser()
        parser.add_argument('--config-directory',
                            help='config directory location')
        parser.add_argument('--create-config',
                            action='store_true',
                            help='generate default configuration files')
        parser.add_argument('--start-webpanel',
                            action='store_true',
                            help='start the web panel')
        args = parser.parse_args()

        # determine config directory location
        self.__config_dir = args.config_directory if args.config_directory else defaults.config_folder_path

        # generate config if should be generated end stop execution
        if args.create_config:
            print("Generating config directory: {}".format(self.__config_dir))
            config_generator.create_config_directory(self.__config_dir)
            return

        self.__config = config_reader.read_config_file(
            defaults.get_global_config_path(self.__config_dir))

        self.__start_processing()

        # filter enabled modules from config and start them
        enabled_modules = {
            k: v
            for (k, v) in self.__config.items('modules') if v == 'True'
        }
        enabled_modules_names = map(lambda item: item[0],
                                    enabled_modules.items())

        self.__start_modules(enabled_modules_names)

        if args.start_webpanel:
            self.__start_webpanel()
示例#3
0
def create_config_directory(dirpath):
    """Creates config directory at the given path"""

    # create directories
    if not os.path.isdir(dirpath):
        os.mkdir(dirpath)

    # save global config file
    global_config_path = defaults.get_global_config_path(dirpath)
    if not os.path.isfile(global_config_path):
        shutil.copyfile('reminisc/config/default_config.ini', global_config_path)

    # create config database
    dbpath = defaults.get_config_database_path(dirpath)
    print(dbpath)
    create_config_database(dbpath)

    # save config files for all modules
    for reminisc_module_name in defaults.approved_reminisc_modules:
        reminisc_module_impls = utils.find_reminisc_module_implementations(reminisc_module_name)

        if len(reminisc_module_impls) > 1:
            logger.error("Reminisc module {} defines more than one module class. Config will not be generated"
                             .format(reminisc_module_name))
        else:
            for impl in reminisc_module_impls:
                module_dir = defaults.get_module_config_dir(dirpath, reminisc_module_name)
                module_config = defaults.get_module_config_path(dirpath, reminisc_module_name)

                if not os.path.isdir(module_dir):
                    print(module_dir)
                    os.makedirs(module_dir)

                if not os.path.isfile(module_config):
                    print(module_config)
                    config_file = open(module_config, 'w')
                    config_file.write(impl.default_config())
                    config_file.close()