(opts: {
executor: CommandExecutor;
isTTY: boolean;
quietOutput: boolean;
})
| 838 | } |
| 839 | |
| 840 | async function ensureSetupPrerequisites(opts: { |
| 841 | executor: CommandExecutor; |
| 842 | isTTY: boolean; |
| 843 | quietOutput: boolean; |
| 844 | }): Promise<void> { |
| 845 | const doctorDependencies = createDoctorDependencies(opts.executor); |
| 846 | const xcodeInfo = await withSpinner({ |
| 847 | isTTY: opts.isTTY, |
| 848 | quietOutput: opts.quietOutput, |
| 849 | startMessage: 'Checking Xcode command line tools...', |
| 850 | stopMessage: 'Xcode command line tools check complete.', |
| 851 | task: () => doctorDependencies.xcode.getXcodeInfo(), |
| 852 | }); |
| 853 | |
| 854 | if (!('error' in xcodeInfo)) { |
| 855 | return; |
| 856 | } |
| 857 | |
| 858 | throw new Error( |
| 859 | `Setup prerequisites failed: ${xcodeInfo.error}. Run \`xcodebuildmcp doctor\` for details.`, |
| 860 | ); |
| 861 | } |
| 862 | |
| 863 | async function collectSetupSelection( |
| 864 | existingConfig: ProjectConfig | undefined, |
no test coverage detected