+#!/bin/bash
+
+E_BASE_REPO="http://svn.enlightenment.org/svn/e/trunk"
+E_PYTHON_REPO="$E_BASE_REPO/BINDINGS/python"
+E_SVN_REV="40978"
+
+TMP_DIR="maemo-efl-deb-src-$E_SVN_REV"
+VERSIONS_DIR="$TMP_DIR/versions"
+
+ALL_MODULES="eina eet evas ecore embryo edje epsilon etk e_dbus efl-core python-evas python-ecore python-edje python-epsilon python-etk python-e_dbus python-efl_utils python-efl-core"
+
+MAEMO_REV="maemo1"
+MAEMO_REPO="extras-devel"
+
+MAEMO_EFL_BASE_REPO="https://garage.maemo.org/svn/maemo-efl/trunk/"
+
+exit_error(){
+ echo " ERROR" && exit 1
+}
+
+init(){
+ if [ -d $TMP_DIR ]; then
+ echo -n "Cleaning up ..."
+ rm -rf $TMP_DIR || exit_error
+ echo " OK"
+ fi
+
+ echo -n "Creating build dir ..."
+ mkdir -p $TMP_DIR || exit_error
+ echo " OK"
+}
+
+checkout_repositories(){
+ echo "Checking out repositories ..."
+ for module in $ALL_MODULES;do
+ echo -n " $module"
+
+ REPO=$E_BASE_REPO
+ REV="-r$E_SVN_REV "
+ echo -n $module | grep python > /dev/null 2>&1 && REPO=$E_PYTHON_REPO
+ echo -n $module | grep efl-core > /dev/null 2>&1 && REPO=$MAEMO_EFL_BASE_REPO && REV=""
+
+ echo -n " ."
+ svn co $REV $REPO/$module $TMP_DIR/$module > /dev/null 2>&1 || exit_error
+ echo -n "."
+ rm -rf $TMP_DIR/$module/debian
+ echo -n "."
+ svn co $MAEMO_EFL_BASE_REPO/$module/debian $TMP_DIR/$module/debian > /dev/null 2>&1 || exit_error
+ echo " OK"
+ done
+
+ echo -n "Cleaning up repositories ..."
+ rm -rf `find $TMP_DIR -name .svn -type d`
+ echo " OK"
+}
+
+update_changelogs(){
+ echo "Updating changelogs ..."
+ for module in $ALL_MODULES;do
+ echo -n " $module "
+
+ echo -n $module | grep -v python | grep -v efl-core > /dev/null 2>&1 && VERSION=`grep AC_INIT $TMP_DIR/$module/configure.ac | cut -d[ -f3 | cut -d] -f1 || exit_error`
+ echo -n "."
+ echo -n $module | grep python | grep -v efl-core > /dev/null 2>&1 && VERSION=`grep version $TMP_DIR/$module/setup.py | cut -d\' -f2 || exit_error`
+ echo -n "."
+ echo -n $module | grep efl-core > /dev/null 2>&1 && VERSION=`grep AC_INIT $TMP_DIR/evas/configure.ac | cut -d[ -f3 | cut -d] -f1 || exit_error`
+
+ echo -n "."
+ dch --force-distribution -b -c $TMP_DIR/$module/debian/changelog -v $VERSION+svn$E_SVN_REV-$MAEMO_REV -D $MAEMO_REPO "SVN snapshot release $E_SVN_REV" > /dev/null 2>&1 || exit_error
+ echo " `head -n1 $TMP_DIR/$module/debian/changelog`"
+ done
+}
+
+gen_versions(){
+ if [ ! -d $VERSIONS_DIR ]; then
+ echo -n "Creating versions dir $VERSIONS_DIR ..."
+ mkdir -p $VERSIONS_DIR || exit_error
+ echo " OK"
+ fi
+
+ echo "Generating version files ..."
+ for module in $ALL_MODULES;do
+ VERSION=`dpkg-parsechangelog -l$TMP_DIR/$module/debian/changelog | grep Version: | cut -d" " -f2 || exit_error`
+ echo " $module ... $VERSION"
+ echo "$VERSION" > $VERSIONS_DIR/"$module"_version
+ done
+}
+
+gen_control(){
+ echo "Generating control files ..."
+ for module in $ALL_MODULES; do
+ echo -n " $module ..."
+ if [ -e $TMP_DIR/$module/debian/control.in ]; then
+ TO_REPLACE=`grep -o -E '@([A-Z]|[0-9])+((-|_)*([A-Z]|[0-9]))*_VERSION@' $TMP_DIR/$module/debian/control.in | cut -d @ -f 2 | sort -u`
+ cp $TMP_DIR/$module/debian/control.in $TMP_DIR/$module/debian/control.temp
+
+ for replacement in $TO_REPLACE; do
+ replacement_lowercase=`echo $replacement | tr "[:upper:]" "[:lower:]"`
+ version_file=$VERSIONS_DIR/$replacement_lowercase
+ if [ ! -e $version_file ]; then
+ echo -n " Could not find a replacement for $replacement" && exit_error
+ fi
+ version_number=`cat $version_file`
+ echo -n " $replacement: $version_number"
+ sed -i s/@$replacement@/$version_number/g $TMP_DIR/$module/debian/control.temp
+ done
+
+ mv $TMP_DIR/$module/debian/control.temp $TMP_DIR/$module/debian/control
+ fi
+
+ echo " OK"
+ done
+}
+
+gen_src_packages(){
+ echo "Generating source packages ..."
+ for module in $ALL_MODULES; do
+ echo -n " $module ."
+ cd $TMP_DIR/$module || exit_error
+ echo -n "."
+ dpkg-buildpackage -rfakeroot -us -uc -D -sa -S -I.git -I.gitignore -I.svn -I.svnignore -ICVS -I.cvsignore > /dev/null 2>&1|| exit_error
+ echo -n "."
+ cd - > /dev/null 2>&1 || exit_error
+ echo " OK"
+ done
+}
+
+init
+checkout_repositories
+update_changelogs
+gen_versions
+gen_control
+gen_src_packages
+echo "All done. Packages in $TMP_DIR"
+exit 0