def load_mkeventd_rules(): rule_packs = ec.load_rule_packs() # TODO: We should really separate the rule stats from this "config load logic" rule_stats = _get_rule_stats_from_ec() for rule_pack in rule_packs: pack_hits = 0 for rule in rule_pack["rules"]: hits = rule_stats.get(rule["id"], 0) rule["hits"] = hits pack_hits += hits rule_pack["hits"] = pack_hits return rule_packs
def _remove_packaged_rule_packs(file_names: Iterable[str], delete_export: bool = True) -> None: """ This function synchronizes the rule packs in rules.mk and the packaged rule packs of a MKP upon deletion of that MKP. When a modified or an unmodified MKP is deleted the exported rule pack and the rule pack in rules.mk are both deleted. """ if not file_names: return rule_packs = list(ec.load_rule_packs()) rule_pack_ids = [rp["id"] for rp in rule_packs] affected_ids = [os.path.splitext(fn)[0] for fn in file_names] for id_ in affected_ids: index = rule_pack_ids.index(id_) del rule_packs[index] if delete_export: ec.remove_exported_rule_pack(id_) ec.save_rule_packs(rule_packs)