54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
import os
|
|
import sys
|
|
import glob
|
|
import datetime
|
|
|
|
def compileClasses(classesPath):
|
|
resultString = ""
|
|
for name in glob.glob(f"{classesPath}/**/*.lua", recursive=True):
|
|
with open(name, 'r') as file:
|
|
part = f"do --{ os.path.basename(name)}\n"
|
|
part += file.read()
|
|
part += f"\nend --{ os.path.basename(name)}\n"
|
|
resultString += part
|
|
return resultString
|
|
|
|
def compile(root, target):
|
|
classPath = os.path.join(root, "classes")
|
|
classes = compileClasses(classPath)
|
|
|
|
dateTime = f"""--[[
|
|
Spearhead Compile Time: {datetime.datetime.now().isoformat()}
|
|
]]"""
|
|
|
|
compiled = f"{dateTime}\n"
|
|
compiled += classes
|
|
|
|
mainFileName = os.path.join(root, "main.lua")
|
|
with open(mainFileName, 'r') as mainFile:
|
|
compiled += "do --Main\n"
|
|
string = mainFile.read()
|
|
compiled += string
|
|
compiled += "\nend --Main\n"
|
|
|
|
# Legacy, Spearhead API is now added as part of the classes
|
|
# apiFileName = os.path.join(root, "api" , "SpearheadApi.lua")
|
|
# with open(apiFileName, 'r') as apiFile:
|
|
# part = "do --Spearhead API\n"
|
|
# part += apiFile.read()
|
|
# part += "\nend --Spearhead API\n"
|
|
# compiled += part
|
|
|
|
with open(target, "w") as targetFile:
|
|
targetFile.write(compiled)
|
|
|
|
|
|
if __name__ == "__main__" :
|
|
args = sys.argv[1:]
|
|
root = args[0]
|
|
target = args[1]
|
|
|
|
print(f"Source: {root}")
|
|
print(f"target: {target}")
|
|
|
|
compile(root, target) |