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 10 11def main(): 12 parser = argparse.ArgumentParser() 13 parser.add_argument( 14 "dotfile", 15 nargs="?", 16 type=argparse.FileType("r"), 17 default=sys.stdin, 18 help="Input .dot file, reads from stdin if not set", 19 ) 20 parser.add_argument( 21 "htmlfile", 22 nargs="?", 23 type=argparse.FileType("w"), 24 default=sys.stdout, 25 help="Output .html file, writes to stdout if not set", 26 ) 27 args = parser.parse_args() 28 29 template = open(HTML_TEMPLATE_PATH, "r") 30 31 for line in template: 32 if "<INSERT_DOT>" in line: 33 print(args.dotfile.read(), file=args.htmlfile, end="") 34 else: 35 print(line, file=args.htmlfile, end="") 36 37 38if __name__ == "__main__": 39 main() 40