use structopt::StructOpt;
#[macro_use]
extern crate clap;
mod cargo;
mod empty;
mod go;
mod node;
mod project;
fn main() {
let args = BumpCli::from_args();
let current_project = match project::find(filesystem::OsFileSystem::new()) {
Err(msg) => panic!(msg),
Ok(r) => r,
};
println!(
"✅ Identified {} project",
current_project.language_name().to_lowercase()
);
println!(
"✅ Bumping package up a {} version",
args.amount.to_string().to_lowercase()
);
let next_version = match args.amount {
BumpAmount::Major => current_project.bump_major(),
BumpAmount::Minor => current_project.bump_minor(),
BumpAmount::Patch => current_project.bump_patch(),
};
match next_version {
Ok(_) => (),
Err(msg) => panic!(msg),
};
}
#[derive(Debug, StructOpt)]
struct BumpCli {
amount: BumpAmount,
}
clap::arg_enum! {
#[derive(Debug)]
enum BumpAmount {
Major,
Minor,
Patch,
}
}