40 lines · python
1#!/usr/bin/env python32import argparse3import os4import sys5 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