Go to file
sneak 998dc1d37b Add version tags alongside commit hashes in output
- tools.json now has both "version" (tag) and "hash" (commit) fields
- Output format: toolname@version [hash] (in duration)
- Update tool fetches and stores both version and hash
- Fix .gitignore to not exclude cmd/update directory
2025-12-18 05:58:39 -08:00
cmd/update Add version tags alongside commit hashes in output 2025-12-18 05:58:39 -08:00
.gitignore Add version tags alongside commit hashes in output 2025-12-18 05:58:39 -08:00
go.mod Initial commit: gosetup tool for installing Go dev binaries 2025-12-18 00:57:28 -08:00
main.go Add version tags alongside commit hashes in output 2025-12-18 05:58:39 -08:00
README.md Update README with new commit hash and fix tools list 2025-12-18 02:12:53 -08:00
tools.json Add version tags alongside commit hashes in output 2025-12-18 05:58:39 -08:00

gosetup

Installs common Go development tools at pinned versions.

Install

# current as of 2025-12-18
go install sneak.berlin/go/gosetup@a414a82306fe2095119eeeb3051bb3f23a803e1e ; hash -r ; gosetup

Usage

# Install all tools at pinned versions
gosetup

# List tools and versions without installing
gosetup -l

# Dry run (show commands without executing)
gosetup -n

# Verbose output
gosetup -v

# Control parallelism (default: 4)
gosetup -j 8

Updating Pinned Versions

To update tools.json with the latest versions:

go run ./cmd/update -o tools.json

Included Tools

  • Language Server: gopls
  • Formatters: gofumpt, goimports, golines
  • Linters: golangci-lint, staticcheck, errcheck, revive
  • vim-go tools: godef, gotests, gomodifytags, impl, fillstruct, fillswitch, motion, iferr, asmfmt, gotags
  • Debugger: dlv (delve)
  • Documentation: godoc
  • And more: gocyclo, ineffassign, misspell, unconvert, gopkgs, go-outline, go-symbols