MCPcopy
hub / github.com/anomalyco/opencode / upsertEnv

Function upsertEnv

packages/llm/script/setup-recording-env.ts:315–333  ·  view source on GitHub ↗
(contents: string, values: Env)

Source from the content-addressed store, hash-verified

313}
314
315const upsertEnv = (contents: string, values: Env) => {
316 const names = Object.keys(values)
317 const seen = new Set<string>()
318 const lines = contents.split(/\r?\n/).map((line) => {
319 const match = line.match(/^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=/)
320 if (!match || !names.includes(match[1])) return line
321 seen.add(match[1])
322 return `${match[1]}=${quote(values[match[1]])}`
323 })
324 const missing = names.filter((name) => !seen.has(name))
325 if (missing.length === 0) return lines.join("\n").replace(/\n*$/, "\n")
326 const prefix = lines.join("\n").trimEnd()
327 const block = [
328 "",
329 "# Added by bun run setup:recording-env",
330 ...missing.map((name) => `${name}=${quote(values[name])}`),
331 ].join("\n")
332 return `${prefix}${block}\n`
333}
334
335const providerRequiredStatus = (provider: Provider, fileEnv: Env) => {
336 const required = requiredVars(provider)

Callers 1

Calls 2

quoteFunction · 0.70
addMethod · 0.65

Tested by

no test coverage detected