( skillsDir: string, clientName: string, )
| 176 | } |
| 177 | |
| 178 | function uninstallSkill( |
| 179 | skillsDir: string, |
| 180 | clientName: string, |
| 181 | ): { client: string; removed: Array<{ variant: string; path: string }> } | null { |
| 182 | const removed: Array<{ variant: string; path: string }> = []; |
| 183 | for (const variant of ['xcodebuildmcp', 'xcodebuildmcp-cli']) { |
| 184 | const dir = path.join(skillsDir, variant); |
| 185 | if (fs.existsSync(dir)) { |
| 186 | fs.rmSync(dir, { recursive: true, force: true }); |
| 187 | removed.push({ variant, path: dir }); |
| 188 | } |
| 189 | } |
| 190 | |
| 191 | if (removed.length === 0) { |
| 192 | return null; |
| 193 | } |
| 194 | |
| 195 | return { client: clientName, removed }; |
| 196 | } |
| 197 | |
| 198 | function resolveTargets( |
| 199 | clientFlag: string | undefined, |
no test coverage detected