Reputation: 26818
Is there a way to get golang version from pkg/
or from compiled binary?
I want to automate removal of $GOPATH/pkg
folder only when I change the golang version.
Upvotes: 5
Views: 2561
Reputation: 31
I found the following method, to check the version of Go lib used to compile the binary
$ strings compiled_binary | grep '^go1'
go1.17.4
Upvotes: 3
Reputation: 456
With 1.9.2, the grep command is
strings $pkg_a_file | grep 'Go cmd/compile'
Upvotes: 1
Reputation: 26818
Nevermind, found the answer
[ `strings $pkg_a_file | grep 'go object' | head -n 1 | cut -f 5 -d ' '` != `go version | cut -f 3 -d ' '` ] && \
rm -rf $GOPATH/pkg
strings $pkg_a_file | grep 'go object' | head -n 1 | cut -f 5 -d ' '
part will show something like go1.6.2
pkg_a_file
can be something like this:
PKG_OS_ARCH=`go version | cut -d ' ' -f 4 | tr '/' '_'`
pkg_a_file=$GOPATH/pkg/$PKG_OS_ARCH/gitlab.com/kokizzu/gokil/A.a
External reference: http://kokizzu.blogspot.co.id/2016/06/solution-for-golang-slow-compile.html
Upvotes: 3