1#!/usr/bin/env python3 2import argparse 3import os 4import sys 5 6BASE_PATH = os.path.dirname(os.path.abspath(__file__)) 7HTML_TEMPLATE_NAME = 'd3-graphviz-template.html' 8HTML_TEMPLATE_PATH = os.path.join(BASE_PATH, HTML_TEMPLATE_NAME) 9 10def main(): 11 parser = argparse.ArgumentParser() 12 parser.add_argument('dotfile', nargs='?', type=argparse.FileType('r'), 13 default=sys.stdin, 14 help='Input .dot file, reads from stdin if not set') 15 parser.add_argument('htmlfile', nargs='?', type=argparse.FileType('w'), 16 default=sys.stdout, 17 help='Output .html file, writes to stdout if not set') 18 args = parser.parse_args() 19 20 template = open(HTML_TEMPLATE_PATH, 'r') 21 22 for line in template: 23 if "<INSERT_DOT>" in line: 24 print(args.dotfile.read(), file=args.htmlfile, end='') 25 else: 26 print(line, file=args.htmlfile, end='') 27 28if __name__ == "__main__": 29 main() 30