crug 0.0.1

A minimal package manager written in Rust.
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
"#
    );
}