This commit is contained in:
2025-12-06 00:17:24 +01:00
parent 78c85a429c
commit 70d5f5689e
54 changed files with 826 additions and 210 deletions

View File

@@ -0,0 +1,72 @@
const fs = require("fs");
const path = require("path");
const rootEnvPath = path.resolve(__dirname, "..", ".env.local");
const websiteEnvPath = path.resolve(__dirname, "..", "apps/website/.env.local");
function parseEnvFile(filePath) {
let content;
try {
content = fs.readFileSync(filePath, "utf8");
} catch (err) {
if (err && err.code === "ENOENT") {
return {};
}
console.error(`Error reading env file at ${filePath}:`, err.message || err);
process.exitCode = 1;
return {};
}
const result = {};
const lines = content.split(/\r?\n/);
for (const line of lines) {
const trimmed = line.trim();
if (!trimmed || trimmed.startsWith("#")) {
continue;
}
const eqIndex = trimmed.indexOf("=");
if (eqIndex === -1) {
continue;
}
const key = trimmed.slice(0, eqIndex).trim();
const value = trimmed.slice(eqIndex + 1);
if (!key) {
continue;
}
result[key] = value;
}
return result;
}
function mergeEnv() {
const rootExists = fs.existsSync(rootEnvPath);
const websiteExists = fs.existsSync(websiteEnvPath);
if (!rootExists && !websiteExists) {
return;
}
const rootEnv = rootExists ? parseEnvFile(rootEnvPath) : {};
const websiteEnv = websiteExists ? parseEnvFile(websiteEnvPath) : {};
const merged = { ...rootEnv, ...websiteEnv };
const lines = Object.entries(merged).map(([key, value]) => `${key}=${value}`);
const output = lines.join("\n") + "\n";
try {
fs.writeFileSync(websiteEnvPath, output, "utf8");
} catch (err) {
console.error(`Error writing merged env file to ${websiteEnvPath}:`, err.message || err);
process.exit(1);
}
}
mergeEnv();