diff options
author | Lars Wirzenius <liw@liw.fi> | 2021-04-22 08:09:21 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2021-04-22 08:39:16 +0300 |
commit | 3f68ce4a8e9b295a4b9fc288174f166e229da8b0 (patch) | |
tree | a4a235e498c98fd02ab5b84f66e577e2a14410c3 | |
parent | 36db48686de4baf1b122f8b78d96432b398be595 (diff) | |
download | bumper-rs-3f68ce4a8e9b295a4b9fc288174f166e229da8b0.tar.gz |
feat: allow setting git tag name template
-rw-r--r-- | bumper.md | 4 | ||||
-rw-r--r-- | src/bin/bumper.rs | 12 | ||||
-rw-r--r-- | src/git.rs | 4 |
3 files changed, 13 insertions, 7 deletions
@@ -149,9 +149,9 @@ given an installed Bumper given file foo/setup.py from empty given file foo/lib/version.py from empty given all files in foo are committed to git -when I run, in foo, bumper 105.12765.42 +when I run, in foo, bumper --tag=foo-%v 105.12765.42 then all changes in foo are committed -then in foo, git tag v105.12765.42 is a signed tag +then in foo, git tag foo-105.12765.42 is a signed tag then file foo/lib/version.py matches regex /__version__\s*=\s*"105\.12765\.42"/ ~~~ diff --git a/src/bin/bumper.rs b/src/bin/bumper.rs index 59443e5..fb5194a 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; @@ -25,9 +26,13 @@ fn bumper() -> Result<(), BumperError> { 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("", &opt.version); + println!("release tag: {}", tag); + git::tag(".", &tag, &msg)?; debug!("Bumper ends OK"); Ok(()) } @@ -41,6 +46,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, } @@ -3,9 +3,7 @@ use log::debug; use std::path::Path; use std::process::Command; -pub fn tag<P: AsRef<Path>>(dirname: P, version: &str) -> Result<(), BumperError> { - let msg = format!("release version {}", version); - let tag_name = format!("v{}", version); +pub fn tag<P: AsRef<Path>>(dirname: P, tag_name: &str, msg: &str) -> Result<(), BumperError> { git(dirname.as_ref(), &["tag", "-am", &msg, &tag_name])?; Ok(()) } |