#!/bin/sh

. "$(git --exec-path)/git-sh-setup"

commit="$1"
versionstr="$(git describe --always ${commit:+"$commit"})"
prefix="crossbow-$versionstr"

tarball="$prefix.tar"

cd_to_toplevel
require_clean_work_tree "generate dist tarball"

rm -rf "$tarball.gz"

git archive \
	--format=tar \
	--prefix="$prefix/" \
	--output="$tarball" \
	"${commit:-@}" \
;

mkdir -p "$prefix"
atexit() {
    x="$?"
    rm -rf "$prefix"
    exit "$x"
}
trap atexit EXIT
printf "%s" "$versionstr" >"$prefix/.versionstr"
tar -rf "$tarball" "$prefix/.versionstr"

gzip "$tarball"

echo "$tarball.gz"
