#!/bin/bash
#
# test/sdist: tests the package generated by "cabal sdist".
#
# Copyright (c) 2015-2020 Rudy Matela.
# Distributed under the 3-Clause BSD licence.
export LC_ALL=C # consistent sort
pkgver=` cat *.cabal | grep "^version:" | sed -e "s/version: *//"`
pkgname=`cat *.cabal | grep "^name:" | sed -e "s/name: *//"`
pkgbase=$pkgname-$pkgver
set -xe
cabal sdist &&
pkg=`find dist* -name $pkgbase.tar.gz`
tmp=`mktemp -d /tmp/test-sdist-XXXXXXXXXX`
tar -tf $pkg | sort --ignore-case > $tmp/ls-cabal-i &&
tar -tf $pkg | sort --ignore-case --unique > $tmp/ls-cabal-iu &&
diff -rud $tmp/ls-cabal-i $tmp/ls-cabal-iu &&
if [ -d .git ]
then
# on git repo, test if files are the same
git ls-files | sort > $tmp/ls-git &&
tar -tf $pkg | grep -v "/$" | sed -e "s,$pkgbase/,," | sort > $tmp/ls-cabal &&
diff -rud $tmp/ls-git $tmp/ls-cabal
fi
rm -r $tmp