#!/bin/bash
#
# Shell script for generating amaroK tarball releases from CVS
#
# (c) 2004 Mark Kretschmann <markey@web.de>
# Some parts of this code taken from cvs2dist
# License: GPL V2
#

# Usage
#    Print usage and exit script
Usage () {
    echo "Usage: --up for automatic upload to sourceforge."
    return 1
}


# Process arguments
while [ -n "$1" ]
do
    case "$1" in
    --up) upload=true
          break
          ;;
    --)   break
          ;;
    -*)   Usage
          ;;
    *)    break
          ;;
    esac
    shift
done

version=`kdialog --inputbox "amaroK version: "`
username=`kdialog --inputbox "CVS username: "`

cvsroot=":pserver:$username@cvs.kde.org:/home/kde"
folder="amarok-$version"
doi18n="yes"
log="/dev/null"

# Prevent using unsermake
oldmake=$UNSERMAKE
export UNSERMAKE=no

# Remove old folder, if exists
rm -rf $folder 2> /dev/null
rm -rf $folder.tar.bz2 2> /dev/null

mkdir $folder
pushd $folder
cvs -d $cvsroot co -l kdeextragear-1
cvs -z3 -d $cvsroot co kdeextragear-1/amarok
cvs -z3 -d $cvsroot co -l kdeextragear-1/doc
cvs -z3 -d $cvsroot co kdeextragear-1/doc/amarok
pushd kdeextragear-1

cvs -z3 -d $cvsroot co admin

echo
echo "**** i18n ****"
echo

# we check out kde-i18n/subdirs in kde-i18n..
if [ $doi18n = "yes" ]; then
    echo "cvs co kde-i18n/subdirs" >> $log
    cvs -z3 -d $cvsroot -q co -P kde-i18n/subdirs > /dev/null 2>&1
    i18nlangs="$(cat kde-i18n/subdirs)"
    echo "available languages: $i18nlangs" >> $log

    # docs
    for lang in $i18nlangs; do
        test -d doc/$lang && rm -Rf doc/$lang
        docdirname="kde-i18n/$lang/docs/kdeextragear-1/amarok"
        echo "cvs co $docdirname" >> $log
        cvs -z3 -q -d "$cvsroot" co $branch -P "$docdirname" > /dev/null 2>&1
        if [ ! -d "$docdirname" ]; then
            echo "$lang's $name documentation does not exist." >> $log
            continue
        fi
        echo "Copying $lang's $name documentation over... "
        cp -R $docdirname doc/$lang
        cat doc/$lang/Makefile.am | sed -e "s/AUTO/amarok/" > doc/$lang/Makefile.am.nw
        mv doc/$lang/Makefile.am.nw doc/$lang/Makefile.am
        echo "$lang documentation included." >> $log
    done

    echo

    mkdir po
    for lang in $i18nlangs; do
        pofilename="kde-i18n/$lang/messages/kdeextragear-1/amarok.po";
        echo "cvs co $pofilename" >> $log
        cvs -z3 -d $cvsroot -q co -P "$pofilename" > /dev/null 2>&1
        if [ ! -f "$pofilename" ]; then
            echo "$lang's $name.po does not exist." >> $log
            continue
        fi

        dest=po/$lang
        mkdir $dest
        echo -n "Copying $lang's $name.po over... "
        echo "$lang's $name.po file included." >> $log
        cp $pofilename $dest
        echo "done."

        echo "KDE_LANG = $lang
SUBDIRS = \$(AUTODIRS)
POFILES = AUTO" > $dest/Makefile.am

        subdirs="non_empty"
    done

    if [ -z "$subdirs" ]; then
        rm -Rf po
    else
        echo "SUBDIRS = \$(AUTODIRS)" > po/Makefile.am
    fi

    rm -rf kde-i18n
fi

echo

# Remove CVS relevant files
find -name "CVS" -exec rm -rf {} \; 2> /dev/null
find -name ".cvsignore" -exec rm {} \;

pushd amarok

# Move some important files to the root folder
mv amarok.lsm ..
mv AUTHORS ..
mv ChangeLog ..
mv COPYING ..
mv INSTALL ..
mv README ..
mv TODO ..

pushd src
cat amarok.h | sed -e "s/APP_VERSION \".*\"/APP_VERSION \"$version"\"/ | tee amarok.h > /dev/null
popd

rm -rf debian

popd # kdeextragear-1
echo

find -name "*" -exec touch {} \;

make -f Makefile.cvs

rm -rf autom4te.cache
rm stamp-h.in

mv * ..
popd # amaroK-foo
rm -rf kdeextragear-1
popd # root
tar -cf $folder.tar $folder
bzip2 $folder.tar
rm -rf $folder

if test x$upload = xtrue; then
    echo
    echo "Uploading file to sourceforge.."
    echo

    scp $folder.tar.bz2 $username@shell.sf.net:snapshots/
fi

export UNSERMAKE=$oldmake


echo
echo "====================================================="
echo "Congratulations :) amaroK $version tarball generated."
echo "Now follow the steps in the RELEASE_HOWTO, from"
echo "SECTION 3 onwards."
echo
echo "Then drink a few pints and have some fun on #amarok"
echo
echo MD5 checksum:
md5sum $folder.tar.bz2
echo
echo
