| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | 
							- #!/usr/bin/env bash
 
- set -euo pipefail
 
- IFS=$'\n\t'
 
- STTRACE=${STTRACE:-}
 
- script() {
 
- 	name="$1"
 
- 	shift
 
- 	go run "script/$name.go" "$@"
 
- }
 
- build() {
 
- 	go run build.go "$@"
 
- }
 
- case "${1:-default}" in
 
- 	default)
 
- 		build
 
- 		;;
 
- 	clean)
 
- 		build "$@"
 
- 		;;
 
- 	tar)
 
- 		build "$@"
 
- 		;;
 
- 	assets)
 
- 		build "$@"
 
- 		;;
 
- 	xdr)
 
- 		build "$@"
 
- 		;;
 
- 	translate)
 
- 		build "$@"
 
- 		;;
 
- 	deb)
 
- 		build "$@"
 
- 		;;
 
- 	setup)
 
- 		build "$@"
 
- 		;;
 
- 	test)
 
- 		ulimit -t 600 &>/dev/null || true
 
- 		ulimit -d 512000 &>/dev/null || true
 
- 		ulimit -m 512000 &>/dev/null || true
 
- 		LOGGER_DISCARD=1 build test
 
- 		;;
 
- 	bench)
 
- 		LOGGER_DISCARD=1 build bench | script benchfilter
 
- 		;;
 
- 	prerelease)
 
- 		go run script/authors.go
 
- 		build transifex
 
- 		git add -A gui/default/assets/ lib/auto/
 
- 		pushd man ; ./refresh.sh ; popd
 
- 		git add -A man
 
- 		;;
 
- 	noupgrade)
 
- 		build -no-upgrade tar
 
- 		;;
 
- 	all)
 
- 		platforms=(
 
- 			darwin-amd64 dragonfly-amd64 freebsd-amd64 linux-amd64 netbsd-amd64 openbsd-amd64 solaris-amd64 windows-amd64
 
- 			freebsd-386 linux-386 netbsd-386 openbsd-386 windows-386
 
- 			linux-arm linux-arm64 linux-ppc64 linux-ppc64le
 
- 		)
 
- 		for plat in "${platforms[@]}"; do
 
- 			echo Building "$plat"
 
- 			goos="${plat%-*}"
 
- 			goarch="${plat#*-}"
 
- 			dist="tar"
 
- 			if [[ $goos == "windows" ]]; then
 
- 				dist="zip"
 
- 			fi
 
- 			build -goos "$goos" -goarch "$goarch" "$dist"
 
- 			echo
 
- 		done
 
- 		;;
 
- 	test-cov)
 
- 		ulimit -t 600 &>/dev/null || true
 
- 		ulimit -d 512000 &>/dev/null || true
 
- 		ulimit -m 512000 &>/dev/null || true
 
- 		echo "mode: set" > coverage.out
 
- 		fail=0
 
- 		# For every package in the repo
 
- 		for dir in $(go list ./lib/... ./cmd/...) ; do
 
- 			# run the tests
 
- 			GOPATH="$(pwd)/Godeps/_workspace:$GOPATH" go test -coverprofile=profile.out $dir
 
- 			if [ -f profile.out ] ; then
 
- 				# and if there was test output, append it to coverage.out
 
- 				grep -v "mode: " profile.out >> coverage.out
 
- 				rm profile.out
 
- 			fi
 
- 		done
 
- 		notCovered=$(egrep -c '\s0$' coverage.out)
 
- 		total=$(wc -l coverage.out | awk '{print $1}')
 
- 		coverPct=$(awk "BEGIN{print (1 - $notCovered / $total) * 100}")
 
- 		echo "Total coverage is $coverPct%"
 
- 		gocov convert coverage.out | gocov-xml > coverage.xml
 
- 		# This is usually run from within Jenkins. If it is, we need to
 
- 		# tweak the paths in coverage.xml so cobertura finds the
 
- 		# source.
 
- 		if [[ "${WORKSPACE:-default}" != "default" ]] ; then
 
- 			sed "s#$WORKSPACE##g" < coverage.xml > coverage.xml.new && mv coverage.xml.new coverage.xml
 
- 		fi
 
- 		;;
 
- 	test-xunit)
 
- 		ulimit -t 600 &>/dev/null || true
 
- 		ulimit -d 512000 &>/dev/null || true
 
- 		ulimit -m 512000 &>/dev/null || true
 
- 		(GOPATH="$(pwd)/Godeps/_workspace:$GOPATH" go test -v -race ./lib/... ./cmd/... || true) > tests.out
 
- 		go2xunit -output tests.xml -fail < tests.out
 
- 		;;
 
- 	*)
 
- 		echo "Unknown build command $1"
 
- 		;;
 
- esac
 
 
  |