57 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			57 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from graphviz import Digraph | ||
|  | import argparse | ||
|  | import os | ||
|  | import pydot | ||
|  | import sys | ||
|  | import warnings | ||
|  | 
 | ||
|  | def gen_graph_from_gv(ifile, odir, oformat="png"): | ||
|  |     (graph,) = pydot.graph_from_dot_file(ifile) | ||
|  |     gen_graph_func = getattr(graph, "write_" + oformat) | ||
|  |     filename = os.path.basename(ifile) | ||
|  |     ofile = odir + "/" + os.path.splitext(filename)[0] + "." + oformat | ||
|  |     gen_graph_func(ofile) | ||
|  | 
 | ||
|  | parser = argparse.ArgumentParser(description='Process some integers.') | ||
|  | parser.add_argument('-i', "--infile", action="append", | ||
|  |                     help="graphviz file path") | ||
|  | parser.add_argument('-o', '--outdir', | ||
|  |                     help='sum the integers (default: find the max)') | ||
|  | parser.add_argument('-f', '--outformat', default="png", | ||
|  |         help='output image format (default: png)') | ||
|  | 
 | ||
|  | args = parser.parse_args() | ||
|  | 
 | ||
|  | # Image source directory | ||
|  | img_src_dir = os.path.dirname(os.path.realpath(sys.argv[0])) | ||
|  | 
 | ||
|  | img_files = [] | ||
|  | if args.infile: | ||
|  |     for f in args.infile: | ||
|  |         if not os.path.isfile(f): | ||
|  |             f = img_src_dir + "/" + f | ||
|  |         if not os.path.isfile(f): | ||
|  |             warnings.warn("Input file: " + f + " doesn't exist.") | ||
|  |         else: | ||
|  |             img_files.append(f) | ||
|  | else: | ||
|  |     for f in os.listdir(img_src_dir): | ||
|  |         if f.endswith(".gv"): | ||
|  |             img_files.append(img_src_dir + "/" + f) | ||
|  | 
 | ||
|  | if not img_files: | ||
|  |     sys.exist("ERROR: no found image files.") | ||
|  | 
 | ||
|  | oformat = args.outformat | ||
|  | 
 | ||
|  | if args.outdir: | ||
|  |     odir = args.outdir | ||
|  |     if not os.path.isdir(odir): | ||
|  |         sys.exit("--outdir " + odir + "doesn't exist") | ||
|  | else: | ||
|  |     odir = os.path.dirname(img_src_dir) + "/img" | ||
|  | 
 | ||
|  | for f in img_files: | ||
|  |     print("Generating " + oformat + " for " + f + " ...") | ||
|  |     gen_graph_from_gv(f, odir, oformat) |