ooni-probe-cli/CLI/go-build-darwin

46 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
if [[ $# -ne 2 ]]; then
echo "" 1>&2
echo "Compiler for a Go PACKAGE producing darwin/GOARCH binaries." 1>&2
echo "" 1>&2
echo "usage: $0 GOARCH PACKAGE" 1>&2
echo "" 1>&2
echo "GOARCH must be one of: amd64, arm64." 1>&2
echo "" 1>&2
echo "Features:" 1>&2
echo "" 1>&2
echo "* automatically sets -tags=ooni_psiphon_config when possible;" 1>&2
echo "" 1>&2
echo "* if GOLANG_EXTRA_FLAGS is set, pass it to the Go compiler." 1>&2
echo "" 1>&2
echo "Example:" 1>&2
echo "" 1>&2
echo " ./CLI/go-build-darwin arm64 ./internal/cmd/miniooni" 1>&2
echo "" 1>&2
exit 1
fi
GOOS=darwin
GOARCH=$1
PACKAGE=$2
if [[ -f ./internal/engine/psiphon-config.json.age &&
-f ./internal/engine/psiphon-config.key ]]; then
OONI_PSIPHON_TAGS=ooni_psiphon_config
else
OONI_PSIPHON_TAGS=""
fi
PRODUCT=$(basename $PACKAGE)
set -x
export CGO_ENABLED=1
export GOOS=$GOOS
export GOARCH=$GOARCH
go build -tags=$OONI_PSIPHON_TAGS -ldflags="-s -w" \
-o ./CLI/$PRODUCT-$GOOS-$GOARCH ${GOLANG_EXTRA_FLAGS:-} \
$PACKAGE