gitez 0.1.2

Gitez is a CLI that simplifies managing your Git repositories.
Documentation
use crate::GitUserConfig;
use anyhow::{Ok, Result};
use console::style;
use dialoguer::Select;

pub fn select_git_user_config() -> Result<GitUserConfig> {
  let git_user_configs = GitUserConfig::get_all()?;
  let items = git_user_configs
    .iter()
    .map(|config| {
      format!(
        "{}: {}<{}>",
        style(&config.config_id).bold(),
        &config.name,
        &config.email
      )
    })
    .collect::<Vec<String>>();

  if items.is_empty() {
    return Err(anyhow::anyhow!(
      "No git user config found. Please add one by running `gitez user-config add`"
    ));
  }

  let selection = Select::new()
    .with_prompt("choose one of your git user config")
    .items(&items)
    .default(0)
    .interact()?;
  Ok(git_user_configs[selection].to_owned())
}