diff --git a/cmd/buildutil/info.go b/cmd/buildutil/info.go index 2b584e9..ad54ce3 100644 --- a/cmd/buildutil/info.go +++ b/cmd/buildutil/info.go @@ -94,6 +94,11 @@ func ParseVersion(s string) (Version, error) { return v, nil } + if mSuffix == "-dirty" { + v.Suffix = "dirty" + return v, nil + } + v.Suffix = "unknown" return v, nil } @@ -112,7 +117,7 @@ func (v Version) StringRelease() (string, string) { version := fmt.Sprintf("v%d.%d.%d", v.Major, v.Minor, v.Patch) release := v.Suffix - if v.Suffix != "" && v.Kind != "prerelease" { + if v.Suffix != "" && v.Kind != "prerelease" && v.Kind != "" { release = fmt.Sprintf("%s.%s", v.Kind, release) } diff --git a/cmd/buildutil/info_test.go b/cmd/buildutil/info_test.go index daaa7b3..dadf761 100644 --- a/cmd/buildutil/info_test.go +++ b/cmd/buildutil/info_test.go @@ -47,6 +47,11 @@ func TestParseVersion(t *testing.T) { in: "v3.0.0-rc2", out: "v3.0.0+rc2", }, + { + name: "dirty-and-tagged", + in: "v3.0.0-dirty", + out: "v3.0.0+dirty", + }, } for _, tc := range cases { diff --git a/go.sum b/go.sum index 08ad8b2..4dcb64f 100644 --- a/go.sum +++ b/go.sum @@ -754,6 +754,7 @@ golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=