use std::env;
const VERSION: &str = env!("CARGO_PKG_VERSION");
fn main() {
let args: Vec<String> = env::args().collect();
match args.get(1).map(String::as_str) {
Some("init") => init(),
Some("add") => {
if let Some(package) = args.get(2) {
add(package);
} else {
eprintln!("Usage: crug add <package>");
}
}
Some("remove") => {
if let Some(package) = args.get(2) {
remove(package);
} else {
eprintln!("Usage: crug remove <package>");
}
}
Some("install") => install(),
Some("list") => list(),
Some("version") | Some("-V") | Some("--version") => {
println!("crug {VERSION}");
}
Some("help") | Some("-h") | Some("--help") | None => help(),
Some(command) => {
eprintln!("Unknown command: {command}");
eprintln!("Run crug help for usage.");
}
}
}
fn init() {
println!("Initializing Crug project...");
println!("Created crug.toml");
}
fn add(package: &str) {
println!("Adding package: {package}");
println!("Dependency resolution will be implemented in a future release.");
}
fn remove(package: &str) {
println!("Removing package: {package}");
println!("Dependency removal will be implemented in a future release.");
}
fn install() {
println!("Installing dependencies...");
println!("Package installation will be implemented in a future release.");
}
fn list() {
println!("Installed packages:");
println!("(none)");
}
fn help() {
println!(
r#"Crug {VERSION}
A minimal package manager written in Rust.
USAGE:
crug <COMMAND>
COMMANDS:
init Initialize a project
add <package> Add a dependency
remove <package> Remove a dependency
install Install dependencies
list List installed packages
version Show version
help Show this help message
"#
);
}