#!/usr/bin/env bash
set -e
set -o pipefail
shopt -s nullglob # if no files match glob, assume empty list instead of string literal


## PACKAGE TO BUILD
Package=github.com/mholt/caddy


## PATHS TO USE
DistDir=$GOPATH/src/$Package/dist
BuildDir=$DistDir/builds
ReleaseDir=$DistDir/release


## BEGIN

# Compile binaries
mkdir -p $BuildDir
cd $BuildDir
rm -f caddy*
gox $Package

# Zip them up with release notes and stuff
mkdir -p $ReleaseDir
cd $ReleaseDir
rm -f caddy*
for f in $BuildDir/*
do
	# Name .zip file same as binary, but strip .exe from end
	zipname=$(basename ${f%".exe"})
	if [[ $f == *"linux"* ]] || [[ $f == *"bsd"* ]]; then
		zipname=${zipname}.tar.gz
	else
		zipname=${zipname}.zip
	fi

	# Binary inside the zip file is simply the project name
	binbase=$(basename $Package)
	if [[ $f == *.exe ]]; then
		binbase=$binbase.exe
	fi
	bin=$BuildDir/$binbase
	mv $f $bin

	# Compress distributable
	if [[ $zipname == *.zip ]]; then
		zip -j $zipname $bin $DistDir/CHANGES.txt $DistDir/LICENSES.txt $DistDir/README.txt
	else
		tar -cvzf $zipname -C $BuildDir $binbase -C $DistDir CHANGES.txt LICENSES.txt README.txt
	fi

	# Put binary filename back to original
	mv $bin $f
done