Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline (Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/* packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
22 lines
608 B
TypeScript
22 lines
608 B
TypeScript
import { existsSync } from "node:fs";
|
|
import path from "node:path";
|
|
import { config } from "dotenv";
|
|
|
|
export function loadRootEnv() {
|
|
let dir = process.cwd();
|
|
for (let i = 0; i < 8; i += 1) {
|
|
const candidate = path.join(dir, ".env");
|
|
if (existsSync(candidate)) {
|
|
config({ path: candidate, override: false });
|
|
if (process.env.DATA_DIR && !path.isAbsolute(process.env.DATA_DIR)) {
|
|
process.env.DATA_DIR = path.resolve(dir, process.env.DATA_DIR);
|
|
}
|
|
return;
|
|
}
|
|
const parent = path.dirname(dir);
|
|
if (parent === dir) break;
|
|
dir = parent;
|
|
}
|
|
config();
|
|
}
|