Reply -
Raw
#!/usr/bin/env python2
# A very simple preprocessor for Screeps js scripts
import os
import sys
IN = "src"
OUT = "build"
_cache = {}
def getFile(name):
path = os.path.join(IN, name.replace("/", os.path.sep))
if path in _cache:
return _cache[path]
if os.path.isfile(path):
fh = open(path, "rb")
data = fh.read()
fh.close()
_cache[path] = data
return data
return None
if __name__ == "__main__":
mainjs = getFile("main.js")
_out = []
for line in mainjs.split('\n'):
if line.startswith("#include"):
fn = line.split("<")[1].split(">")[0]
data = getFile(fn)
if data is None:
raise ImportError("Unable to include {fn}, no such file.".format(fn=fn))
_out.append("// {fn}".format(fn=fn))
_out.append(data)
_out.append("// END {fn}".format(fn=fn))
else:
_out.append(line)
if not os.path.exists(OUT):
os.mkdir(OUT)
ofn = os.path.join(OUT, "main.js")
ofh = open(ofn, "wb")
ofh.write('\n'.join(_out))
ofh.close()