Move the Global module from packages/opencode/src/global to packages/core/src/global to provide a unified location for managing XDG directories and application paths. This eliminates duplicate path definitions across packages and ensures consistent access to data, config, cache, state, log, and bin directories throughout the codebase.
15 lines
551 B
TypeScript
15 lines
551 B
TypeScript
import whichPkg from "which"
|
|
import path from "path"
|
|
import { Global } from "@opencode-ai/core/global"
|
|
|
|
export function which(cmd: string, env?: NodeJS.ProcessEnv) {
|
|
const base = env?.PATH ?? env?.Path ?? process.env.PATH ?? process.env.Path ?? ""
|
|
const full = base ? base + path.delimiter + Global.Path.bin : Global.Path.bin
|
|
const result = whichPkg.sync(cmd, {
|
|
nothrow: true,
|
|
path: full,
|
|
pathExt: env?.PATHEXT ?? env?.PathExt ?? process.env.PATHEXT ?? process.env.PathExt,
|
|
})
|
|
return typeof result === "string" ? result : null
|
|
}
|