#!/usr/bin/env python3 import editfrontmatter import frontmatter import pathlib import sys import uuid def get_args(): """ Get command line arguments """ import argparse parser = argparse.ArgumentParser() parser.add_argument('filename', type=pathlib.Path) parser.add_argument('--template', default=pathlib.Path("/opt/notes2web/templates/n2w_add_uuid_frontmatter_template"), type=pathlib.Path ) parser.add_argument('-w', '--write', action='store_true', help='write to file instead of stdout') return parser.parse_args() def main(args): """ Entry point for script """ with open(args.template) as fp: template_str=fp.read() with open(args.filename) as fp: fm_pre = frontmatter.load(fp) processor = editfrontmatter.EditFrontMatter(file_path=args.filename, template_str=template_str) fm_data = fm_pre.metadata if 'uuid' not in fm_data.keys(): fm_data['uuid'] = str(uuid.uuid4()) processor.run(fm_data) if args.write: with open(args.filename, 'w') as fp: fp.write(processor.dumpFileData()) else: print(processor.dumpFileData()) return 0 if __name__ == '__main__': try: sys.exit(main(get_args())) except KeyboardInterrupt: sys.exit(0)