ghpending 0.1.1

CLI to watch GitHub repos for open issues and pull requests at a glance
use anyhow::Result;
use inquire::MultiSelect;

use crate::config;

pub fn run() -> Result<()> {
    let mut cfg = config::load()?;
    if cfg.repos.is_empty() {
        println!("No repos tracked.");
        return Ok(());
    }

    let to_remove = MultiSelect::new("Select repos to remove:", cfg.repos.clone()).prompt()?;

    let remove_set: std::collections::HashSet<&str> =
        to_remove.iter().map(std::string::String::as_str).collect();
    cfg.repos.retain(|r| !remove_set.contains(r.as_str()));
    config::save(&cfg)?;

    if to_remove.is_empty() {
        println!("Nothing removed.");
    } else {
        println!("Removed {} repo(s).", to_remove.len());
    }
    Ok(())
}