undulate 0.1.0

A lightweight package manager for Lua. An early work in progress, expect nothing to work!
Documentation
#[macro_use]
extern crate clap;
extern crate undulate;

fn main() {
    let matches = clap_app!(Undulate =>
        (version: env!("CARGO_PKG_VERSION"))
        (about: env!("CARGO_PKG_DESCRIPTION"))

        (@subcommand init =>
            (about: "Creates a new undule")

            (@arg INPUT: "Where to initialize the undule. Defaults to the current directory.")
        )

        (@subcommand add =>
            (about: "Save and install a new dependency to this undule")

            (@arg INPUT: +required +multiple "The modules to add as dependencies.")
        )

        (@subcommand remove =>
            (about: "Remove and uninstall a dependency to this undule")

            (@arg INPUT: +required +multiple "The modules to remove from the dependency list.")
        )

        (@subcommand install =>
            (about: "Install the depedencies required by this undule")
        )
    ).get_matches();

    match matches.subcommand() {
        ("init", sub_matches) => {
            let sub_matches = sub_matches.unwrap();
            let path = sub_matches.value_of("INPUT").unwrap_or(".");

            match undulate::init(&path) {
                Ok(_) => println!("Init successful!"),
                Err(e) => panic!("Failed to initialize undule: {:?}", e),
            }
        },
        ("add", _) => {},
        ("remove", _) => {},
        ("install", _) => {},
        _ => {
            eprintln!("Please specify a subcommand!");
            eprintln!("Try 'und help' for information.");
            std::process::exit(1);
        },
    }
}