INNER CODE UNIT · Rust

select_or_list_context

kubie-org/kubie · src/cmd/mod.rs:27

pub fn select_or_list_context(fzf: &Fzf, installed: &mut Installed) -> Result<SelectResult> {
    installed.contexts.sort_by(|a, b| a.item.name.cmp(&b.item.name));
    let mut context_names: Vec<_> = installed.contexts.iter().map(|c| c.item.name.clone()).collect();

    if context_names.is_empty() {
        bail!("No contexts found");
    }
    if context_names.len() == 1 {
        return Ok(SelectResult::Selected(context_names[0].clone()));
    }

    if io::stdout().is_terminal() {
        // NOTE: skim shows the list of context names in reverse order
        context_names.reverse();
        match crate::skim::select(fzf, context_names)? {
            Some(name) => Ok(SelectResult::Selected(name)),
            None => Ok(SelectResult::Cancelled),
        }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…