scripts/yaml_merger/process_yaml.py (21 lines of code) (raw):

# # Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one # or more contributor license agreements. Licensed under the Elastic License; # you may not use this file except in compliance with the Elastic License. # import argparse import yaml from yamlinclude import YamlIncludeConstructor def argument_parser(): parser = argparse.ArgumentParser() parser.add_argument('-base_dir', help='base directory for the included yaml files') parser.add_argument('-field_template_file', help='the template file to use for the merge') parser.add_argument('-output_file', help='the file to dump output') return parser.parse_args() def main(): args = argument_parser() print('base_dir: {}'.format(args.base_dir)) print('field_template_file: {}'.format(args.field_template_file)) print('output_file: {}'.format(args.output_file)) YamlIncludeConstructor.add_to_loader_class(loader_class=yaml.FullLoader, base_dir=args.base_dir) with open(args.field_template_file) as f: data = yaml.load(f, Loader=yaml.FullLoader) with open(args.output_file, 'w') as file: yaml.dump(data, file, default_flow_style=False, sort_keys=False) if __name__ == '__main__': main()