shurcooL / binstale

binstale tells you whether the binaries in your GOPATH/bin are stale or up to date.
MIT License
146 stars 4 forks source link

Windows binaries not recognized? #4

Closed klauern closed 8 years ago

klauern commented 8 years ago

I'm not sure if this is just me, but when I run binstale from my command-line in Windows, it just fails hard:

running bare binstale

C:\Users\Me $> binstale
  4s.exe
    (no source package found)
  Dict.exe
    (no source package found)
  Go-Package-Store.exe
    (no source package found)
  acmego.exe
    (no source package found)
  aedeploy.exe
    (no source package found)
  aligncheck.exe
    (no source package found)
  amberc.exe
    (no source package found)
....

specific binary check

C:\Users\Me $> binstale vet
cannot find binary "vet" in any of:
        C:\Users\Me\dev\golang\bin\vet (from $GOPATH)

It also takes a really, really long time, which I'm not sure if that's related or not. I chalk that up to Windows, because things like go get ... on my Windows machine are just slower in general.

dmitshur commented 8 years ago

Thanks for reporting this @klauern. There's an open PR #3 by @jaccarmac that will fix this. We're working on merging it soon.

klauern commented 8 years ago

that's excellent news. I wasnt aware of that pr, but I can definitely try it out as an additional tester if need be.

jaccarmac commented 8 years ago

If you want to, give what I have a try! Changes are sitting on the fix-for-windows branch of jaccarmac/binstale. The commit history is messy for now, forgive me.

klauern commented 8 years ago

It looks like it works to me. I've been triaging outdated binaries today and the ones I've upgraded have gone from being STALE to up-to-date, so I would say it's working for me:

...
term-envoy
        STALE: github.com/klauern/term-envoy
test
        up to date: github.com/dropbox/godropbox/cinterop/test
        STALE: github.com/gizak/termui/test
        STALE: github.com/remyoudompheng/go-netlink/cmd/test
        STALE: github.com/uber-common/termui/test
thrice
        (no source package found)
tip
        up to date: github.com/golang/tools/cmd/tip
        up to date: golang.org/x/tools/cmd/tip
tipgodoc
        (no source package found)
tldr
        up to date: github.com/pranavraja/tldr
trackello
        STALE: github.com/klauern/trackello
tsdbrelay
        up to date: bosun.org/cmd/tsdbrelay
unbuffered
        up to date: github.com/dropbox/godropbox/cinterop/test/unbuffered
unconvert
        up to date: github.com/mdempsky/unconvert
unused
        STALE: honnef.co/go/unused/cmd/unused
v3benchmark
        (no source package found)
varcheck
        up to date: github.com/opennota/check/cmd/varcheck
vault
        STALE: github.com/hashicorp/vault
vet
        up to date: golang.org/x/tools/cmd/vet
wego
        up to date: github.com/schachmat/wego
wide
        up to date: github.com/b3log/wide
xgb
        (no source package found)
xmlgen
        up to date: github.com/dutchcoders/xmlgen
xmljson2struct
        STALE: github.com/wicast/xj2s/cmd/xmljson2struct
xsd-makepkg
        up to date: github.com/metaleap/go-xsd/xsd-makepkg
zgok
        STALE: github.com/srtkkou/zgok/zgok
klauern commented 8 years ago

A simple example:

C:\Users\Me\dev\golang\src $> binstale vault
vault
        STALE: github.com/hashicorp/vault
C:\Users\Me\dev\golang\src $> del -Force -Recurse .\github.com\hashicorp\vault
C:\Users\Me\dev\golang\src $> go get -u github.com/hashicorp/vault
C:\Users\Me\dev\golang\src $> binstale vault
vault
        up to date: github.com/hashicorp/vault
jaccarmac commented 8 years ago

Thanks for the feedback! Should get merged into master after @shurcooL code reviews and I squash.

dmitshur commented 8 years ago

We've merged #3, so this issue should be fixed.

I've tested on a Windows machine (as well as my main OS X machine), and everything seems to work.

I improved the documentation to be more clear when binary names are used vs command names. Command names never have .exe suffix, but binary names have .exe suffix on Windows.

Please let me know if you spot any issues!

It also takes a really, really long time, which I'm not sure if that's related or not. I chalk that up to Windows, because things like go get ... on my Windows machine are just slower in general.

binstale is quite simple. It runs go list -e all and processes its output.

You can try running go list -e all, I expect it'll take the same amount of time. So it's not really an issue I can do much about. I recommend cleaning your GOPATH, ridding it of unneeded packages, to speed up time to run go list all. :)

klauern commented 8 years ago

Thank you for the advice. This tool works, and I will definitely try cleaning up my $GOPATH.