#!/bin/bash

set -eu

if [ ${VERBOSE:-0} = 1 ]; then
    set -x
fi

if [ $# -ne 3 ] ; then
    echo "Wrong number of arguments."
    exit 1
fi

tarball=$(readlink -f "$3")
storedir=$(dirname "${tarball}")

if [[ "${tarball}" =~ .+gravit-(.+)\.tar\.gz$ ]]; then
    version=${BASH_REMATCH[1]}
    echo "Repacking version ${version}"
else
    echo "Tarball is not in proper format"
    exit 1
fi

tmp=$(mktemp -d)

function cleanup {
  echo "Removing ${tmp}"
  rm -r "${tmp}"
}
trap cleanup EXIT

paths="AudioStreamer.m src/AudioStreamer.h Xcode VisualStudio"

(
    cd ${tmp};
    tar xf ${tarball}
    dirname=$(ls -1)
    for f in ${paths}; do
        rm -r "${dirname}/${f}"
    done
)

output="${storedir}/gravit-${version}+dsfg.tar.gz"
GZIP="--best" tar --directory "${tmp}" -czf "${output}" .

echo "Repacked in ${output}."
