use crate::Project;
use miette::{Context, IntoDiagnostic};
use rattler_conda_types::VersionBumpType;
pub async fn execute(mut project: Project, bump_type: VersionBumpType) -> miette::Result<()> {
let current_version = project
.version()
.as_ref()
.ok_or_else(|| miette::miette!("No version found in manifest."))?
.clone();
let new_version = current_version
.bump(bump_type)
.into_diagnostic()
.context("Failed to bump version.")?;
project.manifest.set_version(&new_version.to_string())?;
project.save()?;
eprintln!(
"{}Updated project version from '{}' to '{}'.",
console::style(console::Emoji("✔ ", "")).green(),
current_version,
new_version,
);
Ok(())
}