eunomia-controller
Version:
38 lines (34 loc) • 1.16 kB
JavaScript
;
var fs = require("fs");
var ejs = require("ejs");
var eunomia = require("./../../variables")("./eunomia.json");
var isMissing = function isMissing(data, message) {
return typeof data === 'undefined';
};
exports.generate = function (writeToPath) {
return require("./../../task/index")("htaccess", function (resolve, reject) {
if (!fs.existsSync("./eunomia.json")) {
reject("eunomia.json required within the root of the project");
} else {
if (!eunomia.generate.htaccess.enabled) {
resolve();
return false;
}
if (isMissing(eunomia.generate.htaccess)) {
reject("The `eunomia.json` requires a `htaccess` json` field");
} else {
try {
var fullPath = __dirname + "/htaccess.ejs";
var template = fs.readFileSync(fullPath, "utf8");
var render = ejs.compile(template, { filename: fullPath });
var output = render({});
fs.writeFileSync(writeToPath + "/.htaccess", output, "utf8");
resolve();
} catch (e) {
console.log(e);
reject("Failed to create a .htaccess");
}
}
}
});
};