bashbrew/scripts/bashbrew-arch-to-goenv.sh

38 lines
919 B
Bash
Executable File

#!/bin/sh
set -eu
# usage: (from within another script)
# eval "$(./.bashbrew-arch-to-goenv.sh)"
# since we need those new environment variables in our other script
bashbrewArch="$1"; shift # "amd64", "arm32v5", "windows-amd64", etc.
os="${bashbrewArch%%-*}"
[ "$os" != "$bashbrewArch" ] || os='linux'
printf 'export GOOS="%s"\n' "$os"
arch="${bashbrewArch#${os}-}"
case "$arch" in
arm32v*)
printf 'export GOARCH="%s"\n' 'arm'
printf 'export GOARM="%s"\n' "${arch#arm32v}"
;;
arm64v*)
printf 'export GOARCH="%s"\n' 'arm64'
# no GOARM for arm64 (yet?) -- https://github.com/golang/go/blob/1e72bf62183ea21b9affffd4450d44d994393899/src/cmd/internal/objabi/util.go#L40
#printf 'export GOARM="%s"\n' "${arch#arm64v}"
printf 'unset GOARM\n'
;;
i386)
printf 'export GOARCH="%s"\n' '386'
printf 'unset GOARM\n'
;;
*)
printf 'export GOARCH="%s"\n' "$arch"
printf 'unset GOARM\n'
;;
esac