27 lines
1.0 KiB
TypeScript
27 lines
1.0 KiB
TypeScript
import { existsSync } from "fs"
|
|
import path from "path"
|
|
import { fileURLToPath } from "url"
|
|
import { createLogger } from "./logger"
|
|
|
|
const log = createLogger({ component: "opencode-config" })
|
|
const __filename = fileURLToPath(import.meta.url)
|
|
const __dirname = path.dirname(__filename)
|
|
const devTemplateDir = path.resolve(__dirname, "../../opencode-config")
|
|
const resourcesPath = (process as NodeJS.Process & { resourcesPath?: string }).resourcesPath
|
|
const prodTemplateDir = resourcesPath ? path.resolve(resourcesPath, "opencode-config") : path.resolve(__dirname, "opencode-config")
|
|
|
|
const isDevBuild = Boolean(process.env.CODENOMAD_DEV ?? process.env.CLI_UI_DEV_SERVER) || existsSync(devTemplateDir)
|
|
const templateDir = isDevBuild ? devTemplateDir : prodTemplateDir
|
|
|
|
export function getOpencodeConfigDir(): string {
|
|
if (!existsSync(templateDir)) {
|
|
throw new Error(`CodeNomad Opencode config template missing at ${templateDir}`)
|
|
}
|
|
|
|
if (isDevBuild) {
|
|
log.debug({ templateDir }, "Using Opencode config template directly (dev mode)")
|
|
}
|
|
|
|
return templateDir
|
|
}
|