diff options
author | Lars Wirzenius <liw@liw.fi> | 2021-04-22 05:43:18 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2021-04-22 05:43:18 +0000 |
commit | 4427fe12410f911a9c8f18ea7b3c9643c88f6d5f (patch) | |
tree | e05affad9e645047bddee6a93ca69e11445f50fa /src/bin/bumper.rs | |
parent | 1600a727446867029451df6f8a181b5a07709efb (diff) | |
parent | 24574aef2299925c10eeb9d20a942f36d1d806d4 (diff) | |
download | bumper-rs-4427fe12410f911a9c8f18ea7b3c9643c88f6d5f.tar.gz |
Merge branch 'tagname-take2' into 'main'
make git tag name be configurable via a template
Closes #1
See merge request larswirzenius/bumper!19
Diffstat (limited to 'src/bin/bumper.rs')
-rw-r--r-- | src/bin/bumper.rs | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/bin/bumper.rs b/src/bin/bumper.rs index 59443e5..9fbf898 100644 --- a/src/bin/bumper.rs +++ b/src/bin/bumper.rs @@ -1,6 +1,7 @@ use bumper::errors::BumperError; use bumper::git; use bumper::project::ProjectKind; +use bumper::tag::Tag; use log::{debug, error}; use std::path::{Path, PathBuf}; use std::process::exit; @@ -20,14 +21,25 @@ fn bumper() -> Result<(), BumperError> { let cwd = abspath(".")?; println!("Setting version for project in {}", cwd.display()); - for mut kind in ProjectKind::detect(&cwd)? { + + let mut kinds = ProjectKind::detect(&cwd)?; + if kinds.is_empty() { + return Err(BumperError::UnknownProjectKind(cwd)); + } + let name = kinds[0].name()?; + + for kind in kinds.iter_mut() { let version = kind.set_version(&opt.version)?; println!("{} project set to {}", kind.desc(), version); } - let msg = format!("Set version to {}", opt.version); + let msg = format!("Release version {}", opt.version); git::commit(".", &msg)?; - git::tag(".", &opt.version)?; + + let tag = Tag::new(&opt.tag)?; + let tag = tag.apply(&name, &opt.version); + println!("release tag: {}", tag); + git::tag(".", &tag, &msg)?; debug!("Bumper ends OK"); Ok(()) } @@ -41,6 +53,9 @@ fn abspath<P: AsRef<Path>>(path: P) -> Result<PathBuf, BumperError> { #[derive(Debug, StructOpt)] struct Opt { + #[structopt(long, default_value = "v%v")] + tag: String, + #[structopt(help = "version number of new release")] version: String, } |