diff --git a/server/src/config.ts b/server/src/config.ts index 983eba22..6943af7a 100644 --- a/server/src/config.ts +++ b/server/src/config.ts @@ -1,5 +1,6 @@ import { readConfigFile } from "./config-file.js"; -import { existsSync } from "node:fs"; +import { existsSync, realpathSync } from "node:fs"; +import { resolve } from "node:path"; import { config as loadDotenv } from "dotenv"; import { resolvePaperclipEnvPath } from "./paths.js"; import { @@ -27,6 +28,14 @@ if (existsSync(PAPERCLIP_ENV_FILE_PATH)) { loadDotenv({ path: PAPERCLIP_ENV_FILE_PATH, override: false, quiet: true }); } +const CWD_ENV_PATH = resolve(process.cwd(), ".env"); +const isSameFile = existsSync(CWD_ENV_PATH) && existsSync(PAPERCLIP_ENV_FILE_PATH) + ? realpathSync(CWD_ENV_PATH) === realpathSync(PAPERCLIP_ENV_FILE_PATH) + : CWD_ENV_PATH === PAPERCLIP_ENV_FILE_PATH; +if (!isSameFile && existsSync(CWD_ENV_PATH)) { + loadDotenv({ path: CWD_ENV_PATH, override: false, quiet: true }); +} + type DatabaseMode = "embedded-postgres" | "postgres"; export interface Config {