Skip to main content

resolve_cli_for_specs

Function resolve_cli_for_specs 

Source
pub fn resolve_cli_for_specs(
    specs: &[SpecEntry],
    cli_flag: Option<&str>,
    config: &PawConfig,
    available_clis: &[CliInfo],
    prompter: &dyn Prompter,
) -> Result<Vec<(String, String)>, PawError>
Expand description

Resolves which CLI to use for each spec-driven branch using a 5-level priority chain:

  1. cli_flag (from --cli) → all branches, no prompt
  2. spec.cli (paw_cli in spec) → that branch only
  3. config.default_spec_cli → remaining branches, no prompt
  4. config.default_cli → pre-selects in picker for remaining
  5. Nothing → full picker for remaining

Prompts at most once. Validates all resolved CLI names against available_clis.