( existingConfig: ProjectConfig | undefined, deps: SetupDependencies, )
| 861 | } |
| 862 | |
| 863 | async function collectSetupSelection( |
| 864 | existingConfig: ProjectConfig | undefined, |
| 865 | deps: SetupDependencies, |
| 866 | ): Promise<SetupSelection> { |
| 867 | const existing = normalizeExistingDefaults(existingConfig); |
| 868 | |
| 869 | showPromptHelp( |
| 870 | 'Enable debug mode to turn on more verbose logging and diagnostics while using XcodeBuildMCP.', |
| 871 | deps.quietOutput, |
| 872 | ); |
| 873 | const debug = await deps.prompter.confirm({ |
| 874 | message: 'Enable debug mode?', |
| 875 | defaultValue: existingConfig?.debug ?? false, |
| 876 | }); |
| 877 | |
| 878 | showPromptHelp( |
| 879 | 'Disable Sentry telemetry to stop sending anonymous runtime diagnostics for XcodeBuildMCP itself (not your app, project code, or build errors).', |
| 880 | deps.quietOutput, |
| 881 | ); |
| 882 | const sentryDisabled = await deps.prompter.confirm({ |
| 883 | message: 'Disable Sentry telemetry?', |
| 884 | defaultValue: existingConfig?.sentryDisabled ?? false, |
| 885 | }); |
| 886 | |
| 887 | const platforms = await selectPlatforms({ |
| 888 | existingPlatforms: inferPlatformsFromExisting(existingConfig), |
| 889 | prompter: deps.prompter, |
| 890 | quietOutput: deps.quietOutput, |
| 891 | }); |
| 892 | |
| 893 | const enabledWorkflows = await selectWorkflowIds({ |
| 894 | debug, |
| 895 | existingConfig, |
| 896 | existingEnabledWorkflows: existingConfig?.enabledWorkflows ?? [], |
| 897 | platforms, |
| 898 | prompter: deps.prompter, |
| 899 | quietOutput: deps.quietOutput, |
| 900 | }); |
| 901 | |
| 902 | const isTTY = isInteractiveTTY(); |
| 903 | |
| 904 | const projectChoice = await selectProjectChoice({ |
| 905 | cwd: deps.cwd, |
| 906 | existingProjectPath: existing.projectPath, |
| 907 | existingWorkspacePath: existing.workspacePath, |
| 908 | fs: deps.fs, |
| 909 | prompter: deps.prompter, |
| 910 | isTTY, |
| 911 | quietOutput: deps.quietOutput, |
| 912 | }); |
| 913 | |
| 914 | const scheme = await selectScheme({ |
| 915 | projectChoice, |
| 916 | existingScheme: existing.scheme, |
| 917 | executor: deps.executor, |
| 918 | prompter: deps.prompter, |
| 919 | isTTY, |
| 920 | quietOutput: deps.quietOutput, |
no test coverage detected