Scan Code/User/profiles/ and install (or plan) a per-profile mcp.json for * each existing profile subdirectory, so VS Code profile users inherit the MCP * server without manual steps (#431). No-op when profiles/ is absent. */
| 8584 | * each existing profile subdirectory, so VS Code profile users inherit the MCP |
| 8585 | * server without manual steps (#431). No-op when profiles/ is absent. */ |
| 8586 | static void install_vscode_profile_configs(const char *code_user, const char *binary_path, |
| 8587 | bool dry_run) { |
| 8588 | char profiles_dir[CLI_BUF_1K]; |
| 8589 | snprintf(profiles_dir, sizeof(profiles_dir), "%s/profiles", code_user); |
| 8590 | cbm_dir_t *d = cbm_opendir(profiles_dir); |
| 8591 | if (!d) { |
| 8592 | return; |
| 8593 | } |
| 8594 | cbm_dirent_t *ent; |
| 8595 | while ((ent = cbm_readdir(d)) != NULL) { |
| 8596 | if (strcmp(ent->name, ".") == 0 || strcmp(ent->name, "..") == 0) { |
| 8597 | continue; |
| 8598 | } |
| 8599 | char profile_path[CLI_BUF_1K]; |
| 8600 | snprintf(profile_path, sizeof(profile_path), "%s/%s", profiles_dir, ent->name); |
| 8601 | struct stat st; |
| 8602 | if (stat(profile_path, &st) != 0 || !S_ISDIR(st.st_mode)) { |
| 8603 | continue; |
| 8604 | } |
| 8605 | char cp[CLI_BUF_1K]; |
| 8606 | snprintf(cp, sizeof(cp), "%s/mcp.json", profile_path); |
| 8607 | install_generic_agent_config("VS Code", binary_path, cp, NULL, dry_run, |
| 8608 | cbm_install_vscode_mcp); |
| 8609 | } |
| 8610 | cbm_closedir(d); |
| 8611 | } |
| 8612 | |
| 8613 | static void uninstall_vscode_profile_configs(const char *code_user, const char *binary_path, |
| 8614 | bool dry_run) { |
no test coverage detected