use crate::command::Command; use crate::commands; pub fn run(args: Vec) { if args.len() < 2 { println!("No command provided"); return; } let command: Option> = match args[1].as_str() { "link" => Some(Box::new(commands::link::LinkCommand {})), _ => None, }; match command { Some(command) => command.run(&args[2..]), None => println!("Invalid command: {}", args[1]), } }