#[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);
},
}
}