mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-19 17:26:28 +00:00
49 lines
1.1 KiB
Bash
Executable File
49 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
usage() {
|
|
echo "Usage: dir"
|
|
exit 1
|
|
}
|
|
|
|
[ $# = 0 ] && usage
|
|
|
|
dir="$1"
|
|
|
|
cd "$dir"
|
|
|
|
# Use '-mod=vendor' for builds which have switched to go modules
|
|
[ -f go.mod -a -d vendor ] && export GOFLAGS="-mod=vendor"
|
|
|
|
# lint before building
|
|
>&2 echo "gofmt..."
|
|
test -z "$(gofmt -s -l .| grep -v .pb. | grep -v vendor/ | tee /dev/stderr)"
|
|
|
|
>&2 echo "govet..."
|
|
test -z "$(GOOS=linux go vet -printf=false . 2>&1 | grep -v "^#" | grep -v vendor/ | tee /dev/stderr)"
|
|
|
|
>&2 echo "golint..."
|
|
test -z "$(find . -type f -name "*.go" -not -path "*/vendor/*" -not -name "*.pb.*" -exec golint {} \; | tee /dev/stderr)"
|
|
|
|
>&2 echo "ineffassign..."
|
|
test -z "$(find . -type f -name "*.go" -not -path "*/vendor/*" -not -name "*.pb.*" -exec ineffassign {} \; | tee /dev/stderr)"
|
|
|
|
>&2 echo "go test..."
|
|
go test
|
|
|
|
>&2 echo "go build..."
|
|
|
|
export CGO_ENABLED=0
|
|
linkmode=""
|
|
piemode=""
|
|
|
|
if [ "${REQUIRE_CGO}" = 1 ]; then
|
|
export CGO_ENABLED=1
|
|
linkmode="-linkmode=external"
|
|
piemode="-buildmode=pie"
|
|
fi
|
|
|
|
go install ${piemode} -ldflags "${linkmode} -s -w ${ldflags} -extldflags \"-fno-PIC -static\""
|
|
|