MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / cbm_opencode_config_path

Function cbm_opencode_config_path

src/cli/cli.c:2428–2450  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2426}
2427
2428static void cbm_opencode_config_path(const char *home_dir, char *out, size_t out_sz) {
2429 char env_buf[CLI_BUF_1K];
2430 const char *custom = cbm_safe_getenv("OPENCODE_CONFIG", env_buf, sizeof(env_buf), NULL);
2431 if (custom && custom[0]) {
2432 snprintf(out, out_sz, "%s", custom);
2433 return;
2434 }
2435 /* OpenCode reads either opencode.json or opencode.jsonc. We always wrote
2436 * the .json name, so a user whose real config is .jsonc got a SECOND file
2437 * that OpenCode ignores — their MCP server silently never appeared, and the
2438 * install looked like it had succeeded (discussion #1560). Prefer whichever
2439 * file already exists, .jsonc first since it is the one we used to miss;
2440 * with neither present, create .json as before. Other clients in this file
2441 * (pochi, kilo) already carry .jsonc paths — OpenCode was the gap. */
2442 char candidate[CLI_BUF_1K];
2443 int written = snprintf(candidate, sizeof(candidate), "%s/.config/opencode/opencode.jsonc",
2444 home_dir ? home_dir : "");
2445 if (written > 0 && (size_t)written < sizeof(candidate) && cbm_file_exists(candidate)) {
2446 snprintf(out, out_sz, "%s", candidate);
2447 return;
2448 }
2449 snprintf(out, out_sz, "%s/.config/opencode/opencode.json", home_dir);
2450}
2451
2452static void cbm_copilot_config_dir(const char *home_dir, char *out, size_t out_sz) {
2453 char env_buf[CLI_BUF_1K];

Callers 3

cbm_detect_agentsFunction · 0.85
uninstall_cli_agentsFunction · 0.85

Calls 2

cbm_safe_getenvFunction · 0.85
cbm_file_existsFunction · 0.85

Tested by

no test coverage detected