#!/bin/sh

# This script is used to download the upstream source for libvdpau and
# generate it into an orig source tarball for Debian.

# Common variables used to ease maintenance of this script
LIBVDPAU_VERSION="0.4.1"
LIBVDPAU_TARBALL="libvdpau-$LIBVDPAU_VERSION.tar.gz"
LIBVDPAU_TARBALL_CHECKSUM=""
LIBVDPAU_ORIG_TARBALL="libvdpau_$LIBVDPAU_VERSION.orig.tar.gz"
USAGE="\n\
This script is used to generate the orig tarball used in building\n\
Debian packages for libvdpau-$LIBVDPAU_VERSION.\n\
Usage: libvdpau-get-orig-source [OPTION]\n\
\n\
 -h, --help                 Display this help message.\n"

while [ "$#" -gt "0" ]
do
    case "$1" in
        -h|--help|*)
            echo "${USAGE}"
            exit 1
            ;;
    esac
done

make_current_tarball() {
    # Download the tarball if it's not available in the current directory
    [ -f $LIBVDPAU_TARBALL ] || \
        wget -c http://cgit.freedesktop.org/~aplattner/libvdpau/snapshot/$LIBVDPAU_TARBALL

    # Can't verify checksum when tarballs are autogenerated from
    # cgit.freedesktop.org.
#     COMPUTED_CHECKSUM=`sha256sum $LIBVDPAU_TARBALL | cut -d ' ' -f 1`
#     if [ $LIBVDPAU_TARBALL_CHECKSUM != $COMPUTED_CHECKSUM ] ; then
#         echo "Checksum verification failed. Checksum was $COMPUTED_CHECKSUM
#     Expected checksum $LIBVDPAU_TARBALL_CHECKSUM."
#         exit 1
#     else
#         echo "Checksum verified. Checksum is $COMPUTED_CHECKSUM."
#     fi

    # Extract tarball and run 'autoreconf -vif'
    echo "Extracting tarball and running 'autoreconf -vif'"
    tar -zxf $LIBVDPAU_TARBALL
    cd libvdpau-$LIBVDPAU_VERSION
    autoreconf -vif
    cd ..

    # Remove temp files and other cruft from source tarball
    # The find command snippet here was taken from debhelper's dh_clean command
    # with some modification to delete more unneeded files.
    echo "Removing temp files and other cruft from source tarball"
    find libvdpau-$LIBVDPAU_VERSION \( \( -type f -a \
        \( -name '#*#' -o -name '.*~' -o -name '*~' -o -name DEADJOE \
        -o -name '*.orig' -o -name '*.rej' -o -name '*.bak' \
        -o -name '.*.orig' -o -name .*.rej -o -name '.SUMS' \
        -o -name TAGS -o \( -path '*/.deps/*' -a -name '*.P' \) \
        -o -name config.status -o -name config.cache -o -name config.log \
        \) -exec rm -f "{}" \; \) -o \
        \( -type d -a -name autom4te.cache -prune -exec rm -rf "{}" \; \) \)
    rm -rf libvdpau-$LIBVDPAU_VERSION/debian
    rm -f libvdpau-$LIBVDPAU_VERSION/.gitignore

    # Remove empty directories
    echo "Removing empty directories"
    find libvdpau-$LIBVDPAU_VERSION -type d -empty -delete

    # Repack tarball to final orig tarball
    echo "Creating orig tarball"
    tar --exclude-vcs -zcf "$LIBVDPAU_ORIG_TARBALL" "libvdpau-$LIBVDPAU_VERSION/"
}

make_current_tarball
