@catladder/cli
Version:
Panter cli tool for cloud CI/CD and DevOps
36 lines • 1.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.componentContextNeedsBuildTimeDotEnv = exports.writeDotEnv = void 0;
const lodash_1 = require("lodash");
const bashEscape_1 = require("../../bash/bashEscape");
const getBuildInfoVariables_1 = require("../../context/getBuildInfoVariables");
const gitlab_1 = require("../../utils/gitlab");
/**
* writes a .env file in the components folder
* @param context
* @returns
*/
const writeDotEnv = (context) => {
const envVars = context.environment.envVars;
// make key=value and sanitize multiline
const keyValueString = Object.entries(envVars)
// filter out null and undefined values
.filter(([, value]) => !(0, lodash_1.isNil)(value))
// filter out build variables, since they may interfer with caching like turbo
// build variables are rarely used anyway and we may treat them differently in the future
.filter(([key]) => !getBuildInfoVariables_1.ALL_BUILD_VARIABLES.includes(key))
.map(([key, value]) => `${key}=${(0, bashEscape_1.escapeForDotEnv)(value)}`)
.join("\n");
return (0, gitlab_1.collapseableSection)("write-dotenv-" + context.name, "write dot env for " + context.name)([
`cat <<EOF > ${context.build.dir}/.env
${keyValueString}
EOF`,
]);
};
exports.writeDotEnv = writeDotEnv;
const componentContextNeedsBuildTimeDotEnv = (context) => {
var _a;
return ((_a = context.componentConfig.dotEnv) !== null && _a !== void 0 ? _a : true) === true; // don't build when set to `local`
};
exports.componentContextNeedsBuildTimeDotEnv = componentContextNeedsBuildTimeDotEnv;
//# sourceMappingURL=writeDotEnv.js.map