#! /bin/sh

# This script is used to generate the codeblocks orig tarball for a release build used for this
# package.
# It is copied from ubuntus codeblocks-package.

# Some variables to make maintaining this script easier
CODEBLOCKS_VERSION="25.03-1"
CODEBLOCKS_URL_DIR="https://sourceforge.net/projects/codeblocks/files/Sources/25.03/"
CODEBLOCKS_TARBALL="codeblocks_${CODEBLOCKS_VERSION}.tar.gz"
CODEBLOCKS_TARBALL_CHECKSUM="4b450f620d9f1875ecf6882ab3c11402"

USAGE='This script is used to generate the orig tarball used in building \
Debian packages for codeblocks-$CODEBLOCKS_VERSION. \
Usage: get-orig-source [OPTION] \
 \
 -h, --help                 Display this help message. \
 --keep-upstream-files      Keep downloaded files. \
 --keep-orig-dir            Keep the generated orig directory.
'

while [ "$#" -gt "0" ]
do
    case "$1" in
        --keep-upstream-files)
            KEEP_UPSTREAM_FILES=1
            shift
            ;;
        --keep-orig-dir)
            KEEP_ORIG_DIR=1
            shift
            ;;
        -h|--help|*)
            echo >&2 "${USAGE}"
            exit 1
            ;;
    esac
done

set -e

# Function to download files. Takes two parameters, the directory name of the
# url to use, and the filename of the file.
download() {
    local url="$1/$2"
    if [ ! -f $2 ] ; then
        # Download the tarball
        wget $url
    fi
}

# Function to verify the checksum. Takes two parameters, the file to compute the
# checksum for and the checksum it should be.
verify_checksum() {
    local checksum=`md5sum $1 | cut -d ' ' -f 1`

    if [ $2 != $checksum ] ; then
        echo "Checksum verification failed. Checksum was $checksum
    Expected checksum $2"
        exit 1
    else
        echo "Checksum verified. Checksum is $2"
    fi
}

# The rest is our main functions.
#Download the files
download $CODEBLOCKS_URL_DIR $CODEBLOCKS_TARBALL

# Verify the checksums
#verify_checksum $CODEBLOCKS_TARBALL $CODEBLOCKS_TARBALL_CHECKSUM

# Unpack the upstream source
if [ ! -d codeblocks-$CODEBLOCKS_VERSION-release -a ! -d codeblocks-$CODEBLOCKS_VERSION ]; then
    echo "Unpacking upstream source."
    tar jxf $CODEBLOCKS_TARBALL
#    mv codeblocks-$CODEBLOCKS_VERSION-release codeblocks-$CODEBLOCKS_VERSION
else
    echo -n "Please remove or move codeblocks-$CODEBLOCKS_VERSION-release and codeblocks-$CODEBLOCKS_VERSION "
    echo "directory."
    exit 1
fi

# Pack into a gzipped tarball
if [ ! -f codeblocks-$CODEBLOCKS_VERSION ]; then
		echo "Removing all prebuilt windows binaries"
		find codeblocks-$CODEBLOCKS_VERSION -name "*.dll" | xargs rm -f
    echo "Creating codeblocks_$CODEBLOCKS_VERSION orig tarball."
    tar --owner=root --group=root -cjf codeblocks_$CODEBLOCKS_VERSION.orig.tar.bz2 codeblocks-$CODEBLOCKS_VERSION
else
    echo "Please remove or move codeblocks_$CODEBLOCKS_VERSION.orig.tar.gz."
    exit 1
fi

# Perform cleanup
if [ -z "$KEEP_ORIG_DIR" ]; then
    echo "Removing extracted directory."
    rm -rf codeblocks-$CODEBLOCKS_VERSION
fi
if [ -z "$KEEP_UPSTREAM_FILES" ]; then
    echo "Removing upstream files."
    rm $CODEBLOCKS_TARBALL
fi
