@catladder/cli
Version:
Panter cli tool for cloud CI/CD and DevOps
33 lines (32 loc) • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.writeDotEnvFiles = void 0;
const path_1 = require("path");
const getProjectConfig_1 = require("../../config/getProjectConfig");
const projects_1 = require("../../utils/projects");
const utils_1 = require("./utils");
const writeDotEnvFiles = async (context, choice) => {
const {
env,
currentComponent
} = await (0, utils_1.getCurrentComponentAndEnvFromChoice)(context.config, choice);
const componentsWithEnabledDotEnvWrite = Object.entries(context.config.components).filter(([, component]) => {
var _a;
return (_a = component === null || component === void 0 ? void 0 : component.dotEnv) !== null && _a !== void 0 ? _a : true;
}) // when set to true or "local"
.map(([componentName]) => componentName);
const componentsToActuallyWriteDotEnvNow = currentComponent ? componentsWithEnabledDotEnvWrite.includes(currentComponent) ? [currentComponent] : [] : componentsWithEnabledDotEnvWrite;
const gitRoot = await (0, projects_1.getGitRoot)();
for (const componentName of componentsToActuallyWriteDotEnvNow) {
const variables = await (0, getProjectConfig_1.getEnvVarsResolved)(null, env, componentName);
delete variables["_ALL_ENV_VAR_KEYS"];
const componentDir = (0, utils_1.getComponentFullPath)(gitRoot, context.config, componentName);
const filePath = (0, path_1.join)(componentDir, ".env");
await context.fileWriter.writeGeneratedFile(filePath, (0, utils_1.makeKeyValueString)(variables), {
commentChar: "#"
});
}
};
exports.writeDotEnvFiles = writeDotEnvFiles;