DEV Community

nchika
nchika

Posted on

gup - Update binaries installed by "go install" with goroutines.

gup demo

gup command update binaries installed by "go install" to the latest version. gup updates all binaries in parallel, so very fast.

It also provides subcommands for manipulating binaries under $GOPATH/bin ($GOBIN). It is a cross-platform software that runs on Windows, Mac and Linux.

gup has over 90% test coverage and is registered with go awesome. For golang users, gup is an easy-to-use command and I recommend it to everyone.

Mentioned in Awesome Go

How to install

go install github.com/nao1215/gup@latest
Enter fullscreen mode Exit fullscreen mode

How to use

Update all binaries

$ gup update
gup:INFO : update binary under $GOPATH/bin or $GOBIN
gup:INFO : [ 1/30] github.com/cheat/cheat/cmd/cheat (Already up-to-date: v0.0.0-20211009161301-12ffa4cb5c87)
gup:INFO : [ 2/30] fyne.io/fyne/v2/cmd/fyne_demo (Already up-to-date: v2.1.3)
gup:INFO : [ 3/30] github.com/nao1215/gal/cmd/gal (v1.0.0 to v1.2.0)
gup:INFO : [ 4/30] github.com/matsuyoshi30/germanium/cmd/germanium (Already up-to-date: v1.2.2)
gup:INFO : [ 5/30] github.com/onsi/ginkgo/ginkgo (Already up-to-date: v1.16.5)
gup:INFO : [ 6/30] github.com/git-chglog/git-chglog/cmd/git-chglog (Already up-to-date: v0.15.1)
   :
   :
Enter fullscreen mode Exit fullscreen mode

Update the specified binary

$ gup update subaru gup ubume
gup:INFO : update binary under $GOPATH/bin or $GOBIN
gup:INFO : [1/3] github.com/nao1215/gup (v0.7.0 to v0.7.1)
gup:INFO : [2/3] github.com/nao1215/subaru (Already up-to-date: v1.0.2)
gup:INFO : [3/3] github.com/nao1215/ubume/cmd/ubume (Already up-to-date: v1.4.1)
Enter fullscreen mode Exit fullscreen mode

List up command name with package path and version under $GOPATH/bin

list subcommand print command information under $GOPATH/bin or $GOBIN. The output information is the command name, package path, and command version.
list sample

Remove the specified binary

$ gup remove subaru gal ubume
gup:CHECK: remove /home/nao/.go/bin/subaru? [Y/n] Y
gup:INFO : removed /home/nao/.go/bin/subaru
gup:CHECK: remove /home/nao/.go/bin/gal? [Y/n] n
gup:INFO : cancel removal /home/nao/.go/bin/gal
gup:CHECK: remove /home/nao/.go/bin/ubume? [Y/n] Y
gup:INFO : removed /home/nao/.go/bin/ubume

$ gup remove --force gal
gup:INFO : removed /home/nao/.go/bin/gal
Enter fullscreen mode Exit fullscreen mode

Conclusion

gup is a fast and easy to use tool. There are other features I have not introduced.

If you are interested, please visit GitHub. Thank you.
https://github.com/nao1215/gup

Top comments (1)

Collapse
 
soulsbane profile image
Paul Crane

This is cool and a great idea! It ran great on my system with no problems. Thanks for this!