// +build mage package main import ( // mage:import . "magefile/docker" "github.com/magefile/mage/mg" ) var ( GolangVolume = "golang.my" MyGoImageName = "my/go" ) func init() { AppName = "go-translator" ImageName = "my/go" BuildFn = build } func Imports() { Bash(`sudo docker run -ti --rm \ -h host \ --net=bridge \ -v /etc/localtime:/etc/localtime:ro \ -v ` + GolangVolume + `:/usr/local/go:ro \ \ -v /gopath:/gopath:rw \ -v ${PWD}:/app \ \ -e GOPATH=/gopath \ -e HOME=/home/user \ \ -w /app \ -u 1000 \ \ --entrypoint=/bin/bash \ \ \ ` + ImageName + " -c '" + `go get \ github.com/onsi/ginkgo/ginkgo \ github.com/onsi/gomega/... \ github.com/davecgh/go-spew \ github.com/h12w/go-socks5 \ h12.io/socks \ github.com/vishvananda/netns \ github.com/milosgajdos/tenus \ github.com/docker/libcontainer/netlink \ github.com/go-ping/ping \ github.com/sirupsen/logrus \ github.com/songgao/water \ github.com/aerogo/packet \ github.com/undefinedlabs/go-mpatch \ github.com/buger/goreplay \ github.com/google/gopacket \ && go list -m -json ... >/dev/null '`) } func ModTidy() { Bash(`sudo docker run -ti --rm \ -h host \ --net=bridge \ -v /etc/localtime:/etc/localtime:ro \ -v ` + GolangVolume + `:/usr/local/go:ro \ \ -v /d1/d/gopath/_data:/gopath:rw \ -v ${PWD}:/app \ \ -e GOPATH=/gopath \ -e HOME=/home/user \ \ -w /app \ -u 1000 \ \ --entrypoint=/usr/local/go/bin/go \ \ \ ` + ImageName + " " + `mod tidy`) Imports() } func Test() { mg.Deps(TestLib) } func TestLib() { Bash(`sudo docker run -ti --rm \ -h host \ --net=none \ -v /etc/localtime:/etc/localtime:ro \ -v ` + GolangVolume + `:/usr/local/go:ro \ \ -v /gopath:/gopath:rw \ -v ${PWD}:/app \ \ -e GOPATH=/gopath \ -e HOME=/home/user \ \ -w /app/transpile \ -u 0 \ \ --entrypoint=/usr/local/go/bin/go \ \ ` + ImageName + " " + `test -gcflags=-l`) } func build() { Bash(`sudo docker run -ti --rm \ -h host \ --net=none \ -v /etc/localtime:/etc/localtime:ro \ -v ` + GolangVolume + `:/usr/local/go:ro \ \ -v /gopath:/gopath:rw \ -v ${PWD}:/app \ \ -e GOPATH=/gopath \ -e HOME=/home/user \ \ -w /app/cmd/go-tr \ -u 0 \ \ --entrypoint=/usr/local/go/bin/go \ \ ` + ImageName + " " + `install`) }