set -e

# create GOPATH
mkdir -p ${BOSH_INSTALL_TARGET}/src
mv * ${BOSH_INSTALL_TARGET}/src
mv ${BOSH_INSTALL_TARGET}/src .

DEST="$PWD/bin"
mkdir -p ${DEST}

source /var/vcap/packages/golang-*-linux/bosh/compile.env

pushd src/code.cloudfoundry.org

CGO_ENABLED=0 go build -o ${DEST}/builder -a -installsuffix static code.cloudfoundry.org/buildpackapplifecycle/builder
CGO_ENABLED=0 go build -o ${DEST}/launcher -a -installsuffix static code.cloudfoundry.org/buildpackapplifecycle/launcher
CGO_ENABLED=0 go build -o ${DEST}/shell -a -installsuffix static code.cloudfoundry.org/buildpackapplifecycle/shell/shell

GOOS=windows CGO_ENABLED=0 go build -o ${DEST}/builder.exe -a -installsuffix static code.cloudfoundry.org/buildpackapplifecycle/builder
GOOS=windows CGO_ENABLED=0 go build -o ${DEST}/launcher.exe -a -installsuffix static code.cloudfoundry.org/buildpackapplifecycle/launcher
GOOS=windows CGO_ENABLED=0 go build -o ${DEST}/getenv.exe -a -installsuffix static code.cloudfoundry.org/buildpackapplifecycle/getenv
popd

ldd $DEST/builder && echo "builder must be statically linked" && false
ldd $DEST/launcher && echo "launcher must be statically linked" && false

cp /var/vcap/packages/diego-sshd/diego-sshd ${DEST}/diego-sshd
cp /var/vcap/packages/diego-sshd/*.exe ${DEST}
cp /var/vcap/packages/diego-sshd/winpty.dll ${DEST}/winpty.dll
cp /var/vcap/packages/cf-pcap/cf-pcap ${DEST}/cf-pcap
cp /var/vcap/packages/healthcheck/healthcheck ${DEST}/healthcheck
cp /var/vcap/packages/healthcheck/healthcheck.exe ${DEST}/healthcheck.exe

setcap cap_net_raw+ep ${DEST}/cf-pcap

tar -czf ${BOSH_INSTALL_TARGET}/buildpack_app_lifecycle.tgz \
  --xattrs --xattrs-include='*' \
  -C ${DEST} \
  builder launcher shell healthcheck diego-sshd cf-pcap  \
  builder.exe launcher.exe getenv.exe healthcheck.exe diego-sshd.exe \
  winpty-agent.exe winpty.dll

