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