DEV Community

Murahashi [Matt] Kenichi
Murahashi [Matt] Kenichi

Posted on

1

go install from tools.go on cross-platform

TL;DR

go install \
  github.com/sanemat/go-importlist/cmd/import-list \
  github.com/sanemat/go-xgoinstall/cmd/x-go-install
import-list -z tools.go | x-go-install -0
Enter fullscreen mode Exit fullscreen mode

Sometimes I want to track and use tool dependencies.

// +build tools

package tools

import (
    _ "github.com/sanemat/go-importlist/cmd/import-list"
    _ "github.com/sanemat/go-xgoinstall/cmd/x-go-install"
    _ "golang.org/x/lint/golint"
    _ "golang.org/x/tools/cmd/goimports"
)

Enter fullscreen mode Exit fullscreen mode

How can I track tool dependencies for a module?
Manage Go tools via Go modules | Marco Franssen

Recommended way:

$ cat tools.go | grep _ | awk -F'"' '{print $2}' | xargs -tI % go install %
Enter fullscreen mode Exit fullscreen mode

But I want to use it on cross-platform, ubuntu, mac, and windows.

$ import-list tools.go
github.com/sanemat/go-importlist/cmd/import-list
github.com/sanemat/go-xgoinstall/cmd/x-go-install
golang.org/x/lint/golint
golang.org/x/tools/cmd/goimports
Enter fullscreen mode Exit fullscreen mode

Then go install all dependencies.

$ import-list tools.go | x-go-install
Enter fullscreen mode Exit fullscreen mode

Split by NULL is more secure 😉

$ import-list -z tools.go | x-go-install -0
Enter fullscreen mode Exit fullscreen mode

https://github.com/sanemat/go-importlist
https://github.com/sanemat/go-xgoinstall

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay