goimports-reviser icon indicating copy to clipboard operation
goimports-reviser copied to clipboard

attempt to handle --version even in untagged builds

Open n-oden opened this issue 7 months ago • 4 comments

This addresses https://github.com/incu6us/goimports-reviser/issues/155

If we are installed via go-install rather than downloading a tagged binary from github, the Tag etc variables will all be empty, and therefore the --version flag is diked out. But there is a way around this!

If the version info is not filled in via build-time flags, use debug.BuildInfo to introspect as much information as we can out of the module metadata:

$ go install github.com/odenio/goimports-reviser/[email protected]
go: downloading github.com/odenio/goimports-reviser/v3 v3.6.6-pre5

$ ~/go/bin/goimports-reviser --version
version: 3.6.6-pre5
built with: go1.22.4
tag: v3.6.6-pre5
commit: n/a
source: github.com/odenio/goimports-reviser/v3

Additionally, add a --version-only flag that prints only the version string itself, handy for use in shell pipelines. Can be used on its own or in combination with the --version flag:

$ ~/go/bin/goimports-reviser --version-only
3.6.6-pre5

n-oden avatar Jul 10 '24 18:07 n-oden