use std::env;
use std::fs;
use std::path::PathBuf;
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() < 2 {
print_usage();
return;
}
let command = &args[1];
match command.as_str() {
"install" => install_gem(&args[2..]),
"uninstall" => uninstall_gem(&args[2..]),
"list" => list_gems(),
"update" => update_gem(&args[2..]),
"help" => print_usage(),
_ => {
println!("Unknown command: {}", command);
print_usage();
}
}
}
fn print_usage() {
println!("gem - Ruby package manager");
println!("Usage:");
println!(" gem install <gem_name> - Install a gem");
println!(" gem uninstall <gem_name> - Uninstall a gem");
println!(" gem list - List installed gems");
println!(" gem update <gem_name> - Update a gem");
println!(" gem help - Show this help");
}
fn install_gem(args: &[String]) {
if args.is_empty() {
println!("Error: Missing gem name");
return;
}
let gem_name = &args[0];
println!("Installing gem: {}", gem_name);
println!("Gem {} installed successfully", gem_name);
}
fn uninstall_gem(args: &[String]) {
if args.is_empty() {
println!("Error: Missing gem name");
return;
}
let gem_name = &args[0];
println!("Uninstalling gem: {}", gem_name);
println!("Gem {} uninstalled successfully", gem_name);
}
fn list_gems() {
println!("Installed gems:");
println!(" rusty-ruby (0.1.0)");
println!(" nyar-vm (0.1.0)");
}
fn update_gem(args: &[String]) {
if args.is_empty() {
println!("Error: Missing gem name");
return;
}
let gem_name = &args[0];
println!("Updating gem: {}", gem_name);
println!("Gem {} updated successfully", gem_name);
}