#!/usr/bin/env python3
import argparse
import os
import sys
BASE_PATH = os.path.dirname(os.path.abspath(__file__))
HTML_TEMPLATE_NAME = "d3-graphviz-template.html"
HTML_TEMPLATE_PATH = os.path.join(BASE_PATH, HTML_TEMPLATE_NAME)
def main():
parser = argparse.ArgumentParser()
parser.add_argument(
"dotfile",
nargs="?",
type=argparse.FileType("r"),
default=sys.stdin,
help="Input .dot file, reads from stdin if not set",
)
parser.add_argument(
"htmlfile",
nargs="?",
type=argparse.FileType("w"),
default=sys.stdout,
help="Output .html file, writes to stdout if not set",
)
args = parser.parse_args()
template = open(HTML_TEMPLATE_PATH, "r")
for line in template:
if "<INSERT_DOT>" in line:
print(args.dotfile.read(), file=args.htmlfile, end="")
else:
print(line, file=args.htmlfile, end="")
if __name__ == "__main__":
main()