extended file copy/generation api to allow chmod

This commit is contained in:
Stefano D'Angelo 2025-06-04 11:33:36 +02:00
parent e7e65a6dc6
commit bb9d68c633

14
tibia
View File

@ -115,21 +115,27 @@ var doT = require("dot");
doT.templateSettings.strip = false; doT.templateSettings.strip = false;
var api = { var api = {
generateFileFromTemplateFile: function (templateFile, outFile, data) { generateFileFromTemplateFile: function (templateFile, outFile, data, mode) {
if (!outputData) if (!outputData)
return; return;
var dir = outputDir + path.sep + path.dirname(outFile); var dir = outputDir + path.sep + path.dirname(outFile);
fs.mkdirSync(dir, { recursive: true }); fs.mkdirSync(dir, { recursive: true });
var t = doT.template(fs.readFileSync(template + path.sep + templateFile, { encoding: "utf-8" })); var t = doT.template(fs.readFileSync(template + path.sep + templateFile, { encoding: "utf-8" }));
fs.writeFileSync(outputDir + path.sep + outFile, t(data), { encoding: "utf-8" }); var outputFile = outputDir + path.sep + outFile;
fs.writeFileSync(outputFile, t(data), { encoding: "utf-8" });
if (mode !== undefined)
fs.chmodSync(outputFile, mode);
}, },
copyFile: function (inFile, outFile) { copyFile: function (inFile, outFile, mode) {
if (!outputCommon) if (!outputCommon)
return; return;
var dir = outputDir + path.sep + path.dirname(outFile); var dir = outputDir + path.sep + path.dirname(outFile);
fs.mkdirSync(dir, { recursive: true }); fs.mkdirSync(dir, { recursive: true });
fs.copyFileSync(template + path.sep + inFile, outputDir + path.sep + outFile); var outputFile = outputDir + path.sep + outFile;
fs.copyFileSync(template + path.sep + inFile, outputFile);
if (mode !== undefined)
fs.chmodSync(outputFile, mode);
}, },
templateDir: template templateDir: template