Skip to content
Snippets Groups Projects
Select Git revision
  • 3f0dbc85a9d02968bf39ef59eae48e86182f26ae
  • master default
2 results

auth.route.js

Blame
  • main.py 1.87 KiB
    from formatter import Formatter
    from html_parser import Parser
    import sys
    from distutils import dir_util
    import os
    
    def main(argv):
    	for arg in argv:
    		main_one_arg(arg)
    
    def main_one_arg(directory):
    	if not os.path.exists(directory):
    		raise OSError("Directory " + str(directory) + " does not exist.")
    	destination = directory + "-protoxml"
    	if not os.path.exists(destination):
    		os.makedirs(destination)
    
    	for filename in os.listdir(directory):
    		parse_and_format(directory, filename, destination)
    
    def parse_and_format(dir_path, filename, dest, level=1):
    	assert(os.path.exists(os.path.join(dir_path, filename)))
    	path_to_file = os.path.join(dir_path, filename)
    	path_to_dst = os.path.join(dest, filename)
    
    	if os.path.isdir(path_to_file):
    		if filename == "images":
    			dir_util.copy_tree(path_to_file, path_to_dst)
    		else:
    			if not os.path.exists(path_to_dst):
    				os.makedirs(path_to_dst)
    			for sub_file in os.listdir(path_to_file):
    				parse_and_format(path_to_file, sub_file, path_to_dst, level+1)
    	elif os.path.isfile(path_to_file):
    		parse_format_and_write_file(path_to_file, os.path.join(dest,
    			filename.replace(".html", ".protoxml")), level)
    	else:
    		print "Unhandled file type (probably symlink) with file " + str(path_to_file)
    
    def parse_format_and_write_file(filename, dest, level):
    	has_been_parsed = False
    	parser = None
    	formatter = None
    	try:
    		parser = Parser(filename)
    		parser.parse()
    		has_been_parsed = True
    	except Exception as e:
    		print "Error with file while parsing: " + str(filename) + " (this file might not be HTML valid enough)"
    		print "Error message: " + str(e)
    	if has_been_parsed:
    		try:
    			formatter = Formatter(parser.get_data(), level)
    			formatter.format()
    			formatter.write_to_file(dest)
    		except Exception as e:
    			print "Error with file while fomatting: " + str(filename)
    
    
    if __name__=="__main__":
    	main(sys.argv[1:]) # don't get the first arg (it's the command name)