use crate::errors::BumperError; use log::{debug, info}; use std::process::Command; pub fn tag(version: &str) -> Result<(), BumperError> { debug!("git tag in {}", std::env::current_dir().unwrap().display()); let tag_name = format!("v{}", version); info!("Create git tag {}", tag_name); let output = Command::new("git") .arg("tag") .arg("-am") .arg(format!("release version {}", version)) .arg(format!("v{}", version)) .output(); let output = match output { Ok(output) => output, Err(err) => { return Err(BumperError::GitInvoke(err)); } }; debug!("git exit code was {:?}", output.status.code()); if !output.status.success() { return Err(BumperError::git_tag(&output.stderr)); } Ok(()) }