Skip to content
gopathexec executes program with arguments, while expanding $GOPATH with multiple workspaces into multiple arguments.
Go
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.travis.yml
README.md
main.go

README.md

gopathexec Build Status GoDoc

Command gopathexec executes program with arguments, while expanding $GOPATH with multiple workspaces into multiple arguments.

Usage: gopathexec program [args]

It is helpful for writing go generate directives for programs that do not understand import paths, but you need to specify include paths that are other Go package folders.

For example, consider a go generate directive like this:

//go:generate protoc -I$GOPATH/src/github.com/gogo/protobuf/protobuf --go_out=. sample.proto

That will only work if your GOPATH env var happens to contain one workspace. By prepending the above command with gopathexec:

//go:generate gopathexec protoc -I$GOPATH/src/github.com/gogo/protobuf/protobuf --go_out=. sample.proto

It will effectively execute:

protoc -I/workspace1/src/github.com/gogo/protobuf/protobuf -I/workspace2/src/github.com/gogo/protobuf/protobuf --go_out=. sample.proto

If you have 1 or no GOPATH workspaces, gopathexec executes the given program and arguments without modification.

Installation

go get -u sourcegraph.com/sourcegraph/gopathexec

License

You can’t perform that action at this time.