#!/bin/sh # Get arch from command line if given PKGARCH=$1 if [ "${PKGARCH}" == "" ]; then echo "tell me the architecture: x86 or x64" exit 1 fi # Get the rest of the repository history if [ "${APPVEYOR_REPO_BRANCH}" != "" ]; then git fetch --all git checkout ${APPVEYOR_REPO_BRANCH} fi # Install prerequisites pacman -S --needed --noconfirm unzip git curl # export PATH=$PATH:/c/go/bin/ # Download the wix tools! if [ ! -d wixbin ]; then curl -LO https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip if [ `md5sum wix311-binaries.zip | cut -f 1 -d " "` != "47a506f8ab6666ee3cc502fb07d0ee2a" ]; then echo "wix package didn't match expected checksum" exit 1 fi mkdir -p wixbin unzip -o wix311-binaries.zip -d wixbin || ( echo "failed to unzip WiX" exit 1 ) fi # Check the prerequisite files are in place [ "${PKGARCH}" == "x64" ] && GOOS=windows GOARCH=amd64 CGO_ENABLED=0 ./build [ "${PKGARCH}" == "x86" ] && GOOS=windows GOARCH=386 CGO_ENABLED=0 ./build # Create the postinstall script cat > config.bat << EOF if exist yggdrasil.conf ( move yggdrasil.conf yggdrasil.conf.backup yggdrasil.exe -useconffile yggdrasil.conf.backup -normaliseconf > yggdrasil.conf ) else ( yggdrasil.exe -genconf > yggdrasil.conf ) EOF # Work out metadata for the package info PKGNAME=$(sh contrib/semver/name.sh) PKGVERSION=$(sh contrib/semver/version.sh --bare) PKGVERSIONMS=$(echo $PKGVERSION | tr - .) [ "${PKGARCH}" == "x64" ] && \ PKGGUID="77757838-1a23-40a5-a720-c3b43e0260cc" PKGINSTFOLDER="ProgramFiles64Folder" || \ PKGGUID="54a3294e-a441-4322-aefb-3bb40dd022bb" PKGINSTFOLDER="ProgramFilesFolder" # Download the Wintun driver if [ $PKGARCH = "x64" ]; then PKGMSMNAME=wintun-x64.msm curl -o ${PKGMSMNAME} https://www.wintun.net/builds/wintun-amd64-0.7.msm || (echo "couldn't get wintun"; exit 1) elif [ $PKGARCH = "x86" ]; then PKGMSMNAME=wintun-x86.msm curl -o ${PKGMSMNAME} https://www.wintun.net/builds/wintun-x86-0.7.msm || (echo "couldn't get wintun"; exit 1) else echo "wasn't sure which architecture to get wintun for" exit 1 fi # Generate the wix.xml file cat > wix.xml << EOF EOF # Generate the MSI CANDLEFLAGS="-nologo" LIGHTFLAGS="-nologo -spdb -sice:ICE71 -sice:ICE61" wixbin/candle $CANDLEFLAGS -out ${PKGNAME}-${PKGVERSION}-${PKGARCH}.wixobj -arch ${PKGARCH} wix.xml && \ wixbin/light $LIGHTFLAGS -out ${PKGNAME}-${PKGVERSION}-${PKGARCH}.msi ${PKGNAME}-${PKGVERSION}-${PKGARCH}.wixobj