@aivec/wp-docker-dev-factory
Version:
Spin up local WordPress environments with Docker.
85 lines (84 loc) • 5.12 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var path_1 = __importDefault(require("path"));
var fs_1 = require("fs");
var utils_1 = require("../utils");
var logger_1 = __importDefault(require("../logger"));
var constants_1 = require("../constants");
var os_1 = require("os");
var validatePrivateRemoteFilesConfig = function (prfconfigs, confkey) {
var prfConfFileName = "".concat(confkey, ".json");
var prfConfFilePath = "".concat(constants_1.serverConfigsDirpath, "/").concat(prfConfFileName);
prfconfigs.forEach(function (prfconfig, index) {
if (!(0, utils_1.isObject)(prfconfig)) {
logger_1.default.logContext(prfconfig);
logger_1.default.syntaxError("".concat(confkey, " config value at index ").concat(logger_1.default.yellow(index), " is not an object."), constants_1.instanceConfFilename);
process.exit(1);
}
if (prfconfig.plugins && !Array.isArray(prfconfig.plugins)) {
logger_1.default.logContext(prfconfig);
logger_1.default.error("".concat(logger_1.default.yellow('plugins'), " is not an array"));
process.exit(1);
}
if (prfconfig.themes && !Array.isArray(prfconfig.themes)) {
logger_1.default.logContext(prfconfig);
logger_1.default.error("".concat(logger_1.default.yellow('themes'), " is not an array"));
process.exit(1);
}
if (prfconfig.confpath) {
var p = prfconfig.confpath;
if (path_1.default.isAbsolute(p)) {
p = "".concat((0, os_1.homedir)()).concat(p);
}
if (!(0, fs_1.existsSync)(p)) {
logger_1.default.error("No such file exists: ".concat(logger_1.default.yellow(p)));
process.exit(1);
}
}
else {
if (!prfconfig.confname) {
logger_1.default.logContext(prfconfig);
logger_1.default.syntaxError("".concat(logger_1.default.yellow('confname'), " in ").concat(confkey, " config at index ").concat(logger_1.default.yellow(index), " is not defined."), constants_1.instanceConfFilename);
process.exit(1);
}
if ((0, fs_1.existsSync)("".concat(constants_1.serverConfigsDirpath, "/").concat(prfconfig.confname, ".json"))) {
try {
JSON.parse((0, fs_1.readFileSync)("".concat(constants_1.serverConfigsDirpath, "/").concat(prfconfig.confname, ".json"), 'utf8'));
}
catch (err) {
logger_1.default.error(err);
process.exit(1);
}
}
else if ((0, fs_1.existsSync)(prfConfFilePath)) {
try {
var allConfigs = JSON.parse((0, fs_1.readFileSync)(prfConfFilePath, 'utf8'));
if (!allConfigs[prfconfig.confname]) {
logger_1.default.logContext(allConfigs);
logger_1.default.syntaxError("".concat(logger_1.default.yellow(prfconfig.confname), " is not defined in ").concat(logger_1.default.yellow(prfConfFilePath), ". Either create a new file named ").concat(logger_1.default.yellow("".concat(prfconfig.confname, ".json")), " in ").concat(logger_1.default.yellow(constants_1.serverConfigsDirpath), ", or add ").concat(logger_1.default.yellow(prfconfig.confname), " to ").concat(logger_1.default.yellow(prfConfFileName), "."), prfConfFileName);
process.exit(1);
}
if (!(0, utils_1.isObject)(allConfigs[prfconfig.confname])) {
logger_1.default.logContext(allConfigs);
logger_1.default.syntaxError("".concat(logger_1.default.yellow(prfconfig.confname), " is defined in ").concat(logger_1.default.yellow(prfConfFilePath), " but it is not an object."), prfConfFileName);
process.exit(1);
}
}
catch (err) {
logger_1.default.error(err);
process.exit(1);
}
}
else {
logger_1.default.logContext(prfconfig);
var ftpfile = "".concat(prfconfig.confname, ".json");
logger_1.default.error("A file named ".concat(logger_1.default.yellow(ftpfile), " nor a file named ").concat(logger_1.default.yellow(prfConfFileName), " exists in ").concat(logger_1.default.yellow(constants_1.serverConfigsDirpath), ". Either create a new file named ").concat(logger_1.default.yellow(ftpfile), " in ").concat(logger_1.default.yellow(constants_1.serverConfigsDirpath), ", or create a ").concat(logger_1.default.yellow(prfConfFileName), " file with ").concat(logger_1.default.yellow(prfconfig.confname), " as a key."));
process.exit(1);
}
}
});
};
exports.default = validatePrivateRemoteFilesConfig;