#!/usr/bin/env bash

# Makes a release tarball.  We include our dependencies/submodules,
# but we heavily prune their file lists to avoid including lots of
# extraneous baggage.  We also leave out Bloaty's tests, especially
# because some of the test data is large.

set -e

if [ "$#" -ne 1 ]; then
  echo "Usage: make-release.tarball.sh VERSION"
  exit 1
fi

VERSION=$1

FILES=$(git ls-files --exclude-standard --recurse-submodules |
          grep -v googletest |
          grep -v ^tests |
          grep -v third_party/protobuf |
          grep -v 'third_party/capstone/\(suite\|bindings\|xcode\|msvc\|contrib\)' |
          grep -v ^.git)
FILES="$FILES $(git ls-files --exclude-standard --recurse-submodules |
          grep 'third_party/protobuf/\(src\|cmake\|configure.ac\)')"

# Unfortunately tar on Mac doesn't support --transform, so we have to
# actually move our files to a different directory to get the prefix.
DIR=/tmp/bloaty-$VERSION
rm -rf $DIR
mkdir $DIR
rsync -R $FILES $DIR

BASE=$PWD
cd /tmp
OUT=bloaty-$VERSION.tar.bz2
tar cjf $BASE/$OUT bloaty-$VERSION

echo "Created $OUT"

