mod change;
pub mod changelog;
pub mod config;
pub mod util;
pub mod version;
use change::commit_changes;
use changelog::generate_and_insert_changelogs;
use colored::Colorize;
use config::Config;
use util::check_for_uncommitted_changes;
use version::{increment_version, write_new_version_to_file, VersionDesignation};
pub const EXPECTED_CONFIG_FILE_NAME: &str = "gitscribe.json";
pub fn handle_version_bump(config: Config, version_designation: VersionDesignation) {
check_for_uncommitted_changes();
let version = increment_version(&config, version_designation);
let config = write_new_version_to_file(config, version.clone());
let changelog = generate_and_insert_changelogs(&version, &config);
match changelog {
Ok(changelog) => {
changelog.iter().for_each(|log| println!("{}", log.cyan()));
}
Err(_) => {
println!("{}", "Failed to generate changelog".red());
}
}
commit_changes(version.to_string());
}