#!/bin/bash
#
# test-sdist: tests the package generated by "cabal sdist".
#
# Copyright (c) 2015-2018 Rudy Matela.
# Distributed under the 3-Clause BSD licence.
pkgver=` cat *.cabal | grep "^version:" | sed -e "s/version: *//"`
pkgname=`cat *.cabal | grep "^name:"    | sed -e "s/name: *//"`
pkg=$pkgname-$pkgver
set -x
cabal sdist &&
cd dist &&
if [ -d ../.git ]
then
	# on git repo, test if files are the same
	git -C .. ls-files                                      | sort > ls-git   &&
	tar -tf $pkg.tar.gz | grep -v "/$" | sed -e "s,$pkg/,," | sort > ls-cabal &&
	diff -rud ls-git ls-cabal &&
	rm -f ls-git ls-cabal
else
	# outside of git repo, test build
	rm -rf $pkg/ &&
	tar -xzf $pkg.tar.gz &&
	cd $pkg/ &&
	cabal configure --enable-tests --enable-benchmarks &&
	cabal build &&
	cabal test
fi
