def run_rules(cfg): plugins = {} rules = cfg.get('rules', []) for i, rule in enumerate(rules): rule['id'] = i + 1 module_name = rule["type"] if module_name in plugins: continue f, filename, desc = imp.find_module(module_name, [config.plugins_path, config.user_plugins_path]) module = imp.load_module(module_name, f, filename, desc) plugins[module_name] = module logging.info("load plugins:%s %s", module_name, filename) if hasattr(module, "init"): module.init(cfg) rule_runner.runall(rules, cfg, plugins)
#! /usr/bin/env python # -*- coding: utf-8 -*- # import daemon import time import logging import config import utils import sender import rule_runner utils.init_logger(config.log_dir, config.log_level, config.log_console) logging.info("zoro start") utils.init_for_setup() zorocfg = utils.load_user_config(config.user_config_path) sender.init(zorocfg) rule_runner.init(zorocfg) rule_runner.runall(zorocfg) time.sleep(10000) # TODO # with daemon.DaemonContext(): # while True: # time.sleep(1)