multica/packages/utils/src/paths.ts
Jiayuan Zhang 40fb94e3c3 feat(utils): add SMC_DATA_DIR env var to override root data directory
Allows isolating dev and prod data by setting SMC_DATA_DIR (e.g.
~/.super-multica-dev). Also fixes cron/store.ts which bypassed
DATA_DIR with a hardcoded path.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 00:39:13 +08:00

26 lines
830 B
TypeScript

import { join } from "node:path";
import { homedir } from "node:os";
/**
* Resolve the root data directory.
* Override with SMC_DATA_DIR env var (supports ~ expansion).
* Defaults to ~/.super-multica.
*/
export function resolveDataDir(): string {
const envDir = process.env.SMC_DATA_DIR;
if (envDir) {
return envDir.startsWith("~")
? join(homedir(), envDir.slice(1))
: envDir;
}
return join(homedir(), ".super-multica");
}
/** Root data directory (default: ~/.super-multica, override: SMC_DATA_DIR) */
export const DATA_DIR = resolveDataDir();
/** Cache directory for downloaded media files */
export const MEDIA_CACHE_DIR = join(DATA_DIR, "cache", "media");
/** Default workspace base directory: ~/Documents/Multica */
export const DEFAULT_WORKSPACE_DIR = join(homedir(), "Documents", "Multica");