mirror of https://github.com/roytam1/UXP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.4 KiB
72 lines
1.4 KiB
#!/usr/bin/env python |
|
|
|
from __future__ import print_function |
|
import os, sys |
|
|
|
if not len(sys.argv) is 2 or not os.path.exists(sys.argv[1]): |
|
print("\nYou did not supply a valid path to check.") |
|
exit(1) |
|
else: |
|
print("\nChecking for un-preprocessed files...", end = ' ') |
|
DIST_PATH = sys.argv[1] |
|
|
|
PP_FILE_TYPES = ( |
|
'.css', |
|
'.dtd', |
|
'.html', |
|
'.js', |
|
'.jsm', |
|
'.xhtml', |
|
'.xml', |
|
'.xul', |
|
'.manifest', |
|
'.properties', |
|
'.rdf' |
|
) |
|
|
|
PP_SPECIAL_TYPES = ('.css') |
|
|
|
PP_DIRECTIVES = [ |
|
'define', |
|
'if', |
|
'ifdef', |
|
'ifndef', |
|
'elif', |
|
'elifdef', |
|
'endif', |
|
'error', |
|
'expand', |
|
'filter', |
|
'include', |
|
'literal', |
|
'undef', |
|
'unfilter' |
|
] |
|
|
|
PP_FILES = [] |
|
PP_BAD_FILES = [] |
|
|
|
for root, directories, filenames in os.walk(DIST_PATH): |
|
for filename in filenames: |
|
if filename.endswith(PP_FILE_TYPES): |
|
PP_FILES += [ os.path.join(root, filename).replace(os.sep, '/') ] |
|
|
|
for file in PP_FILES: |
|
with open(file) as fp: |
|
marker = '%' if file.endswith(PP_SPECIAL_TYPES) else '#' |
|
directives = tuple(marker + directive for directive in PP_DIRECTIVES) |
|
for line in fp: |
|
if line.startswith(directives): |
|
PP_BAD_FILES += [ file.replace(DIST_PATH + '/', '') ] |
|
fp.close() |
|
|
|
PP_BAD_FILES = list(dict.fromkeys(PP_BAD_FILES)) |
|
|
|
print('Done!') |
|
|
|
if len(PP_BAD_FILES) > 0: |
|
print("\nWARNING: The following {0} file(s) in {1} may require preprocessing:\n".format(len(PP_BAD_FILES), DIST_PATH)) |
|
for file in PP_BAD_FILES: |
|
print(file) |
|
|
|
exit(0) |