@aivec/wp-docker-dev-factory
Version:
Spin up local WordPress environments with Docker.
54 lines (53 loc) • 2.87 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 logger_1 = __importDefault(require("../logger"));
var constants_1 = require("../constants");
var utils_1 = require("../utils");
var errors_1 = require("../errors");
var validateSSHMeta = function (sshMeta, filepath) {
if (!sshMeta.host) {
logger_1.default.logContext(sshMeta);
logger_1.default.syntaxError("".concat(logger_1.default.yellow('host'), " is not defined."), filepath);
throw new errors_1.GenericError(errors_1.ERR_PROPERTY_REQUIRED, 'host is not defined');
}
if (!sshMeta.user) {
logger_1.default.logContext(sshMeta);
logger_1.default.syntaxError("".concat(logger_1.default.yellow('user'), " is not defined."), filepath);
throw new errors_1.GenericError(errors_1.ERR_PROPERTY_REQUIRED, 'user is not defined');
}
if (!sshMeta.privateKeyPath) {
logger_1.default.logContext(sshMeta);
logger_1.default.syntaxError("".concat(logger_1.default.yellow('privateKeyPath'), " is not defined."), filepath);
throw new errors_1.GenericError(errors_1.ERR_PROPERTY_REQUIRED, 'privateKeyPath is not defined');
}
var keypath = (0, utils_1.resolvePathToAbsolute)(path_1.default.dirname(filepath), sshMeta.privateKeyPath);
if (!(0, fs_1.existsSync)(keypath)) {
logger_1.default.error("SSH key at ".concat(logger_1.default.yellow(keypath), " does not exist."));
throw new errors_1.GenericError(errors_1.ERR_FILE_NOT_FOUND, "SSH key at ".concat(keypath, " does not exist."));
}
};
var validateSSHConfig = function (ssh, workingdir) {
ssh.forEach(function (sshConfig) {
if (sshConfig.confpath) {
var p = (0, utils_1.resolvePathToAbsolute)(workingdir, sshConfig.confpath);
var sshMeta = JSON.parse((0, fs_1.readFileSync)(p, 'utf8'));
validateSSHMeta(sshMeta, p);
}
else {
if ((0, fs_1.existsSync)("".concat(constants_1.serverConfigsDirpath, "/").concat(sshConfig.confname, ".json"))) {
var sshMeta = JSON.parse((0, fs_1.readFileSync)("".concat(constants_1.serverConfigsDirpath, "/").concat(sshConfig.confname, ".json"), 'utf8'));
validateSSHMeta(sshMeta, "".concat(constants_1.serverConfigsDirpath, "/").concat(sshConfig.confname, ".json"));
}
else {
var allConfigs = JSON.parse((0, fs_1.readFileSync)(constants_1.sshConfigsFilepath, 'utf8'));
validateSSHMeta(allConfigs[sshConfig.confname], constants_1.sshConfigsFilepath);
}
}
});
};
exports.default = validateSSHConfig;