void-packages/common/build-style/go.sh
Cameron Nemo 5e35764d3f build-style: use XBPS_MAKEJOBS to set go processes
Clean up some minor unnecessary bashisms, and an unquoted variable.
2019-08-09 23:09:12 +02:00

48 lines
1.5 KiB
Bash

#
# This helper is for templates for Go packages.
#
do_configure() {
# $go_import_path must be set, or we can't link $PWD into $GOSRCPATH
# nor build from modules
if [ -z "$go_import_path" ]; then
msg_error "\"\$go_import_path\" not set on $pkgname template.\n"
fi
# This isn't really configuration, but its needed by packages
# that do unusual things with the build where the expect to be
# able to cd into the $GOSRCPATH
if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then
# Skip GOPATH symlink for Go modules
msg_normal "Building $pkgname using Go modules.\n"
elif [ "${go_get}" != "yes" ]; then
mkdir -p ${GOSRCPATH%/*}/
ln -fs "$PWD" "${GOSRCPATH}"
fi
}
do_build() {
go_package=${go_package:-$go_import_path}
# Build using Go modules if there's a go.mod file
if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then
if [ -z "${go_mod_mode}" ] && [ -d vendor ]; then
msg_normal "Using vendor dir for $pkgname Go dependencies.\n"
go_mod_mode=vendor
elif [ "${go_mod_mode}" = "default" ]; then
# Allow templates to explicitly opt into the go tool's
# default behavior.
go_mod_mode=
fi
go install -p "$XBPS_MAKEJOBS" -mod="${go_mod_mode}" -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
else
# Otherwise, build using GOPATH
go get -p "$XBPS_MAKEJOBS" -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
fi
}
do_install() {
find "${GOPATH}/bin" -type f -executable | while read line
do
vbin "${line}"
done
}