#!/bin/bash set -eux srcDir=${GOPATH}/src/$(basename ${SRC_PKG}) trap "rm -rf ${srcDir}" EXIT version_ge() { test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" == "$1"; } if [ -d ${SRC_PKG} ]; then echo "Building in directory ${srcDir}" ln -sf ${SRC_PKG} ${srcDir} elif [ -f ${SRC_PKG} ]; then echo "Building file ${SRC_PKG} in ${srcDir}" mkdir -p ${srcDir} cp ${SRC_PKG} ${srcDir}/function.go fi cd ${srcDir} if [ -f "go.mod" ]; then go mod download else export GO111MODULE="on" go mod init go mod tidy fi GOFLAGS="-buildmode=plugin" if [ -d "vendor" ] && version_ge ${GOLANG_VERSION} "1.12"; then GOFLAGS="${GOFLAGS} -mod=vendor" fi go build ${GOFLAGS} -o ${DEPLOY_PKG} .