1use crate::cli::AliasCommands;
4use crate::data::config::Config;
5use anyhow::Result;
6
7pub async fn handle(command: AliasCommands) -> Result<()> {
9 match command {
10 AliasCommands::Add { name, target } => {
11 let mut config = Config::load()?;
12 config.add_alias(name.clone(), target.clone())?;
13 config.save()?;
14 println!("Added alias '{}' -> '{}'", name, target);
15 Ok(())
16 }
17 AliasCommands::Delete { name } => {
18 let mut config = Config::load()?;
19 config.remove_alias(name.clone())?;
20 config.save()?;
21 println!("Removed alias '{}'", name);
22 Ok(())
23 }
24 AliasCommands::List => {
25 let config = Config::load()?;
26 let aliases = config.list_aliases();
27
28 if aliases.is_empty() {
29 println!("No aliases configured");
30 } else {
31 println!("Configured aliases:");
32 for (alias_name, target) in aliases {
33 println!(" {} -> {}", alias_name, target);
34 }
35 }
36 Ok(())
37 }
38 }
39}