Select Git revision
auth.route.js
-
Nicolas Fley authoredNicolas Fley authored
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)