134 строки
2,3 КиБ
Go
134 строки
2,3 КиБ
Go
// +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`)
|
|
}
|