"use strict"; var plugins = require("./qenv.plugins"); var Qenv = (function () { function Qenv(basePathArg, envYmlPathArg, failOnMissing) { if (basePathArg === void 0) { basePathArg = process.cwd(); } if (failOnMissing === void 0) { failOnMissing = true; } this.requiredEnvVars = getRequiredEnvVars(basePathArg); this.availableEnvVars = getAvailableEnvVars(this.requiredEnvVars, envYmlPathArg); this.missingEnvVars = getMissingEnvVars(this.requiredEnvVars, this.availableEnvVars); //handle missing variables if (this.missingEnvVars.length > 0) { plugins.beautylog.info("Required Env Vars are:"); console.log(this.requiredEnvVars); plugins.beautylog.error("However some Env variables could not be resolved:"); console.log(this.missingEnvVars); if (failOnMissing) { plugins.beautylog.error("Exiting!"); process.exit(1); } } } return Qenv; }()); exports.Qenv = Qenv; ; var getRequiredEnvVars = function (pathArg) { var result = []; var qenvFilePath = plugins.path.join(pathArg, "qenv.yml"); var qenvFile = plugins.smartfile.local.toObjectSync(qenvFilePath); for (var keyArg in qenvFile.vars) { result.push(qenvFile.vars[keyArg]); } return result; }; var getAvailableEnvVars = function (requiredEnvVarsArg, envYmlPathArg) { var result = []; envYmlPathArg = plugins.path.join(envYmlPathArg, "env.yml"); var envYml; try { envYml = plugins.smartfile.local.toObjectSync(envYmlPathArg); } catch (err) { plugins.beautylog.log("env file couldn't be found at " + envYmlPathArg); envYml = {}; } for (var keyArg in requiredEnvVarsArg) { var requiredEnvVar = requiredEnvVarsArg[keyArg]; if (process.env[requiredEnvVar]) { result.push(requiredEnvVar); } else if (envYml.hasOwnProperty(requiredEnvVar)) { process.env[requiredEnvVar] = envYml[requiredEnvVar]; result.push(requiredEnvVar); } } return result; }; var getMissingEnvVars = function (requiredEnvVarsArray, availableEnvVarsArray) { return plugins.lodash.difference(requiredEnvVarsArray, availableEnvVarsArray); }; //# sourceMappingURL=data:application/json;charset=utf8;base64,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QUM7UUFDbEMsSUFBSSxjQUFjLEdBQVUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkQsRUFBRSxDQUFBLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQSxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQTtBQUVELElBQUksaUJBQWlCLEdBQUcsVUFBQyxvQkFBNkIsRUFBQyxxQkFBOEI7SUFDakYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDakYsQ0FBQyxDQUFBIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9xZW52LnBsdWdpbnNcIjtcblxuZXhwb3J0IGNsYXNzIFFlbnYge1xuICAgIHJlcXVpcmVkRW52VmFyczpzdHJpbmdbXTtcbiAgICBhdmFpbGFibGVFbnZWYXJzOnN0cmluZ1tdO1xuICAgIG1pc3NpbmdFbnZWYXJzOnN0cmluZ1tdO1xuICAgIGNvbnN0cnVjdG9yKGJhc2VQYXRoQXJnID0gcHJvY2Vzcy5jd2QoKSxlbnZZbWxQYXRoQXJnLGZhaWxPbk1pc3NpbmcgPSB0cnVlKXtcbiAgICAgICAgdGhpcy5yZXF1aXJlZEVudlZhcnMgPSBnZXRSZXF1aXJlZEVudlZhcnMoYmFzZVBhdGhBcmcpO1xuICAgICAgICB0aGlzLmF2YWlsYWJsZUVudlZhcnMgPSBnZXRBdmFpbGFibGVFbnZWYXJzKHRoaXMucmVxdWlyZWRFbnZWYXJzLGVudlltbFBhdGhBcmcpO1xuICAgICAgICB0aGlzLm1pc3NpbmdFbnZWYXJzID0gZ2V0TWlzc2luZ0VudlZhcnModGhpcy5yZXF1aXJlZEVudlZhcnMsdGhpcy5hdmFpbGFibGVFbnZWYXJzKTtcbiAgICAgICAgXG4gICAgICAgIC8vaGFuZGxlIG1pc3NpbmcgdmFyaWFibGVzXG4gICAgICAgIGlmICh0aGlzLm1pc3NpbmdFbnZWYXJzLmxlbmd0aCA+IDApe1xuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcIlJlcXVpcmVkIEVudiBWYXJzIGFyZTpcIilcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMucmVxdWlyZWRFbnZWYXJzKTtcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmVycm9yKFwiSG93ZXZlciBzb21lIEVudiB2YXJpYWJsZXMgY291bGQgbm90IGJlIHJlc29sdmVkOlwiKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMubWlzc2luZ0VudlZhcnMpO1xuICAgICAgICAgICAgaWYoZmFpbE9uTWlzc2luZyl7XG4gICAgICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuZXJyb3IoXCJFeGl0aW5nIVwiKVxuICAgICAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmxldCBnZXRSZXF1aXJlZEVudlZhcnMgPSAocGF0aEFyZzpzdHJpbmcpOnN0cmluZ1tdID0+IHtcbiAgICBsZXQgcmVzdWx0OnN0cmluZ1tdID0gW107XG4gICAgbGV0IHFlbnZGaWxlUGF0aCA9IHBsdWdpbnMucGF0aC5qb2luKHBhdGhBcmcsXCJxZW52LnltbFwiKTtcbiAgICBsZXQgcWVudkZpbGUgPSBwbHVnaW5zLnNtYXJ0ZmlsZS5sb2NhbC50b09iamVjdFN5bmMocWVudkZpbGVQYXRoKTtcbiAgICBmb3IobGV0IGtleUFyZyBpbiBxZW52RmlsZS52YXJzKXtcbiAgICAgICAgcmVzdWx0LnB1c2gocWVudkZpbGUudmFyc1trZXlBcmddKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxubGV0IGdldEF2YWlsYWJsZUVudlZhcnMgPSAocmVxdWlyZWRFbnZWYXJzQXJnOnN0cmluZ1tdLGVudlltbFBhdGhBcmc6c3RyaW5nKTpzdHJpbmdbXSA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgIGVudlltbFBhdGhBcmcgPSBwbHVnaW5zLnBhdGguam9pbihlbnZZbWxQYXRoQXJnLFwiZW52LnltbFwiKVxuICAgIGxldCBlbnZZbWw7XG4gICAgdHJ5IHtcbiAgICAgICAgZW52WW1sID0gcGx1Z2lucy5zbWFydGZpbGUubG9jYWwudG9PYmplY3RTeW5jKGVudlltbFBhdGhBcmcpO1xuICAgIH1cbiAgICBjYXRjaChlcnIpe1xuICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJlbnYgZmlsZSBjb3VsZG4ndCBiZSBmb3VuZCBhdCBcIiArIGVudlltbFBhdGhBcmcpXG4gICAgICAgIGVudlltbCA9IHt9O1xuICAgIH1cbiAgICBmb3IobGV0IGtleUFyZyBpbiByZXF1aXJlZEVudlZhcnNBcmcpe1xuICAgICAgICBsZXQgcmVxdWlyZWRFbnZWYXI6c3RyaW5nID0gcmVxdWlyZWRFbnZWYXJzQXJnW2tleUFyZ107XG4gICAgICAgIGlmKHByb2Nlc3MuZW52W3JlcXVpcmVkRW52VmFyXSl7XG4gICAgICAgICAgICByZXN1bHQucHVzaChyZXF1aXJlZEVudlZhcik7XG4gICAgICAgIH0gZWxzZSBpZihlbnZZbWwuaGFzT3duUHJvcGVydHkocmVxdWlyZWRFbnZWYXIpKXtcbiAgICAgICAgICAgIHByb2Nlc3MuZW52W3JlcXVpcmVkRW52VmFyXSA9IGVudlltbFtyZXF1aXJlZEVudlZhcl07XG4gICAgICAgICAgICByZXN1bHQucHVzaChyZXF1aXJlZEVudlZhcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxubGV0IGdldE1pc3NpbmdFbnZWYXJzID0gKHJlcXVpcmVkRW52VmFyc0FycmF5OnN0cmluZ1tdLGF2YWlsYWJsZUVudlZhcnNBcnJheTpzdHJpbmdbXSkgPT4ge1xuICAgIHJldHVybiBwbHVnaW5zLmxvZGFzaC5kaWZmZXJlbmNlKHJlcXVpcmVkRW52VmFyc0FycmF5LGF2YWlsYWJsZUVudlZhcnNBcnJheSk7XG59Il19