151c20e58SAmir Ayupov#!/usr/bin/env python3 251c20e58SAmir Ayupovimport argparse 351c20e58SAmir Ayupovimport os 451c20e58SAmir Ayupovimport sys 551c20e58SAmir Ayupov 651c20e58SAmir AyupovBASE_PATH = os.path.dirname(os.path.abspath(__file__)) 7*f98ee40fSTobias HietaHTML_TEMPLATE_NAME = "d3-graphviz-template.html" 851c20e58SAmir AyupovHTML_TEMPLATE_PATH = os.path.join(BASE_PATH, HTML_TEMPLATE_NAME) 951c20e58SAmir Ayupov 10*f98ee40fSTobias Hieta 1151c20e58SAmir Ayupovdef main(): 1251c20e58SAmir Ayupov parser = argparse.ArgumentParser() 13*f98ee40fSTobias Hieta parser.add_argument( 14*f98ee40fSTobias Hieta "dotfile", 15*f98ee40fSTobias Hieta nargs="?", 16*f98ee40fSTobias Hieta type=argparse.FileType("r"), 1751c20e58SAmir Ayupov default=sys.stdin, 18*f98ee40fSTobias Hieta help="Input .dot file, reads from stdin if not set", 19*f98ee40fSTobias Hieta ) 20*f98ee40fSTobias Hieta parser.add_argument( 21*f98ee40fSTobias Hieta "htmlfile", 22*f98ee40fSTobias Hieta nargs="?", 23*f98ee40fSTobias Hieta type=argparse.FileType("w"), 2451c20e58SAmir Ayupov default=sys.stdout, 25*f98ee40fSTobias Hieta help="Output .html file, writes to stdout if not set", 26*f98ee40fSTobias Hieta ) 2751c20e58SAmir Ayupov args = parser.parse_args() 2851c20e58SAmir Ayupov 29*f98ee40fSTobias Hieta template = open(HTML_TEMPLATE_PATH, "r") 3051c20e58SAmir Ayupov 3151c20e58SAmir Ayupov for line in template: 3251c20e58SAmir Ayupov if "<INSERT_DOT>" in line: 33*f98ee40fSTobias Hieta print(args.dotfile.read(), file=args.htmlfile, end="") 3451c20e58SAmir Ayupov else: 35*f98ee40fSTobias Hieta print(line, file=args.htmlfile, end="") 36*f98ee40fSTobias Hieta 3751c20e58SAmir Ayupov 3851c20e58SAmir Ayupovif __name__ == "__main__": 3951c20e58SAmir Ayupov main() 40