UNPKG

@catladder/cli

Version:

Panter cli tool for cloud CI/CD and DevOps

36 lines 1.69 kB
"use strict"; 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