diff options
author | John Estabrook <jestabro@vyos.io> | 2020-01-14 09:18:16 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-14 09:18:16 -0600 |
commit | 29e3f990303c6d01c37f4fafc44d0d3cbcd4558e (patch) | |
tree | 2828d034d5ae467abbfb155015f40685d2518424 /scripts/build-component-versions | |
parent | 91de4ec9d95a6a99df0ad5363633251bcb5f4874 (diff) | |
parent | 29e438755c8bd2b9598a2016a3c42891f0cbfa1d (diff) | |
download | vyos-1x-29e3f990303c6d01c37f4fafc44d0d3cbcd4558e.tar.gz vyos-1x-29e3f990303c6d01c37f4fafc44d0d3cbcd4558e.zip |
Merge pull request #205 from jestabro/syntax-version
Syntax version
Diffstat (limited to 'scripts/build-component-versions')
-rwxr-xr-x | scripts/build-component-versions | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/scripts/build-component-versions b/scripts/build-component-versions new file mode 100755 index 000000000..5362dbdd4 --- /dev/null +++ b/scripts/build-component-versions @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 + +import sys +import os +import argparse +import json + +from lxml import etree as ET + +parser = argparse.ArgumentParser() +parser.add_argument('INPUT_DIR', type=str, + help="Directory containing XML interface definition files") +parser.add_argument('OUTPUT_DIR', type=str, + help="Output directory for JSON file") + +args = parser.parse_args() + +input_dir = args.INPUT_DIR +output_dir = args.OUTPUT_DIR + +version_dict = {} + +for filename in os.listdir(input_dir): + filepath = os.path.join(input_dir, filename) + print(filepath) + try: + xml = ET.parse(filepath) + except Exception as e: + print("Failed to load interface definition file {0}".format(filename)) + print(e) + sys.exit(1) + + root = xml.getroot() + version_data = root.iterfind("syntaxVersion") + for ver in version_data: + component = ver.get("component") + version = int(ver.get("version")) + + v = version_dict.get(component) + if v is None: + version_dict[component] = version + elif version > v: + version_dict[component] = version + +out_file = os.path.join(output_dir, 'component-versions.json') +with open(out_file, 'w') as f: + json.dump(version_dict, f, indent=4, sort_keys=True) |