Code Monkey home page Code Monkey logo

Comments (2)

lukebigum avatar lukebigum commented on July 27, 2024

A simper test:

$ cortextool rules print --disable-color > tmp.yml
$ cortextool rules sync tmp.yml 
ERRO[0000] unable parse rules file                       error="yaml: unmarshal errors:\n  line 1: field group1 not found in type rules.RuleNamespace\n  line 13: field group2 not found in type rules.RuleNamespace" file=tmp.yml
cortextool: error: sync operation unsuccessful, unable to parse rules files: file read error, try --help

from cortex-tools.

Granddave avatar Granddave commented on July 27, 2024

To circumvent this annoyance I've written a small script to convert the content generated by coretextool rules print.

$ cortextool rules print --disable-color > tmp.yml
$ ./split.py tmp.yml
$ rules check --rule-dirs=rules && echo OK
OK
#!/usr/bin/env python3

import argparse
import os
import yaml


def _load_yaml(path):
    with open(path) as file:
        return yaml.load(file, Loader=yaml.FullLoader)


def _write_yaml(data, path):
    with open(path, "w") as file:
        yaml.dump(data, file, sort_keys=False, width=9999)


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("namespaces_file", type=str)
    args = parser.parse_args()

    base_dir = os.path.dirname(os.path.abspath(args.namespaces_file))
    rules_dir = os.path.join(base_dir, "rules")
    os.makedirs(rules_dir)

    for namespace, groups in _load_yaml(args.namespaces_file).items():
        _write_yaml(
            data={"namespace": namespace, "groups": groups},
            path=os.path.join(rules_dir, f"{namespace}.yaml"),
        )


if __name__ == "__main__":
    main()

from cortex-tools.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.