1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/usr/bin/python3
- # 使用此脚本将data/html下的代码转换成写死的Controller
- import os
- import sys
- import datetime
- if __name__ == "__main__":
- if not os.path.exists("../controller/auto-generated"):
- os.mkdir("../controller/auto-generated")
- if len(sys.argv) != 2:
- print("usage: Generate-Assets <AssetFilePath>")
- exit(-1)
- pass
- assetPath = sys.argv[1]
- with open("html/" + assetPath, "r", encoding="utf-8") as f:
- fileTexts = []
- for it in f.readlines():
- lineText = it.replace("\\", "\\\\").replace("\n", "\\n").replace("\r", "").replace("\'", "\\'").replace("\"", "\\\"")
- lineText = " string(\"" + lineText + "\")"
- fileTexts.append(lineText)
- fileText = " + \n".join(fileTexts)
- if len(fileTexts) == 0:
- fileText = "\"\""
- writeToFilePath = "../controller/auto-generated/" + assetPath.replace("/", "-") + ".cpp"
- print("Writing to " + writeToFilePath)
- with open(writeToFilePath, "w+", encoding="utf-8") as w:
- w.write("//\n")
- w.write("// Created by xcbosa on " + str(datetime.date.today()) + "\n")
- w.write("//\n")
- w.write("\n")
- w.write("#include \"../../processor/processor.h\"\n")
- w.write("#include \"../../utils/utils.h\"\n")
- w.write("#include \"../../webuiconf.h\"\n")
- w.write("\n")
- w.write("using namespace std;\n")
- w.write("using namespace xc::processor;\n")
- w.write("using namespace xc::utils;\n")
- w.write("using namespace xc::processor::templates;\n")
- w.write("\n")
- w.write("namespace xc::controller {\n")
- w.write("\n")
- w.write(" static string ControllerPath = \"/" + assetPath + "\";\n\n")
- w.write(" static ResponseData *controllerResponse(RequestData request) {\n")
- w.write(" return new TextResponseData(200,\n")
- w.write(fileText + "\n")
- w.write(" , mimeTypeOfFile(ControllerPath));\n")
- w.write(" }\n\n")
- w.write(" ContentGeneratorDefineS(request.getURLPath() == ControllerPath, controllerResponse(request))\n")
- w.write("\n")
- w.write("}\n")
|