use crate::ReleaseKind;
use anyhow::Result;
pub fn compute_next_tag(kind: &ReleaseKind) -> Result<String> {
let root = std::env::current_dir()?;
let cur = crate::project::read_current_version(&root)?;
let base = crate::semver::base_of(&cur);
let bump_kind = match kind {
ReleaseKind::Major => crate::semver::BumpKind::Major,
ReleaseKind::Minor => crate::semver::BumpKind::Minor,
ReleaseKind::Patch => crate::semver::BumpKind::Patch,
};
let next = crate::semver::bump(&base, bump_kind)?;
Ok(format!("v{}", next))
}
pub fn bump(
kind: &ReleaseKind,
_cfg: &crate::config::Config,
) -> Result<()> {
let root = std::env::current_dir()?;
let cur = crate::project::read_current_version(&root)?;
let base = crate::semver::base_of(&cur);
let bump_kind = match kind {
ReleaseKind::Major => crate::semver::BumpKind::Major,
ReleaseKind::Minor => crate::semver::BumpKind::Minor,
ReleaseKind::Patch => crate::semver::BumpKind::Patch,
};
let next = crate::semver::bump(&base, bump_kind)?;
crate::project::write_versions(&root, &next)?;
Ok(())
}