use clap::{Parser, Subcommand};
use gitscribe::{
config::load_config, handle_init, handle_version_bump, util::print_banner,
version::VersionDesignation,
};
#[derive(Parser)]
#[command(author, version, about)] struct Cli {
#[command(subcommand)]
command: Commands,
}
#[derive(Subcommand)]
enum Commands {
Init,
Patch,
Minor,
Major,
}
fn main() {
print_banner();
let cli = Cli::parse();
match cli.command {
Commands::Init => {
handle_init();
}
Commands::Patch {} => {
let config = load_config();
match config {
Some(_) => {}
None => std::process::exit(1),
}
handle_version_bump(config.unwrap(), VersionDesignation::Patch);
}
Commands::Minor {} => {
let config = load_config();
match config {
Some(_) => {}
None => std::process::exit(1),
}
handle_version_bump(config.unwrap(), VersionDesignation::Minor);
}
Commands::Major {} => {
let config = load_config();
match config {
Some(_) => {}
None => std::process::exit(1),
}
handle_version_bump(config.unwrap(), VersionDesignation::Major);
}
}
}