Better detection of package version
[maemo-efl] / trunk / scripts / gen-deb-src.sh
index 4e65537..9cc771f 100755 (executable)
@@ -6,7 +6,8 @@ E_PYTHON_SUFIX="BINDINGS/python"
 E_PYTHON_REPO="$E_TRUNK_REPO/$E_PYTHON_SUFIX"
 E_PROTO_REPO="$E_TRUNK_REPO/PROTO"
 
-[ -z $E_SVN_REV ] && E_SVN_REV="44144"
+[ -z $OUTPUT_FILE ] && OUTPUT_FILE="/dev/null"
+[ -z $E_SVN_REV ] && E_SVN_REV="50928"
 
 TMP_DIR="maemo-efl-deb-src-$E_SVN_REV"
 VERSIONS_DIR="$TMP_DIR/versions"
@@ -39,13 +40,11 @@ ALL_MODULES+=("python-evas"
 MAEMO_REV="maemo1"
 MAEMO_REPO="extras-devel"
 
-MAEMO_EFL_BASE_REPO="https://garage.maemo.org/svn/maemo-efl/trunk/"
-
-exit_error(){
+function exit_error(){
     echo " ERROR" && exit 1
 }
 
-init(){
+function init(){
     if [ -d $TMP_DIR ]; then
                echo -n "Cleaning up ..."
                rm -rf $TMP_DIR || exit_error
@@ -57,38 +56,38 @@ init(){
     echo " OK"
 }
 
-checkout_repositories(){
+function checkout_repositories(){
     echo "Checking out repositories ..."
     for module in ${ALL_MODULES[@]};do
         echo -n "      $module"
 
         case $module in
             elementary)
-                REPO="$E_BASE_REPO/TMP/st"
+                REPO="$E_TRUNK_REPO/TMP/st"
                 ;;
             epdf|libeweather)
                 REPO="$E_PROTO_REPO"
                 ;;
             *efl-core)
-                cp -r $module $TMP_DIR > /dev/null 2>&1 && echo " ... OK" || exit_error
+                cp -r $module $TMP_DIR >> $OUTPUT_FILE 2>&1 && echo " ... OK" || exit_error
                 continue
                 ;;
             python-*)
                 REPO="$E_PYTHON_REPO"
                 ;;
             *)
-                REPO=$E_BASE_REPO
+                REPO=$E_TRUNK_REPO
                 ;;
         esac
 
                REV="-r$E_SVN_REV "
 
         echo -n " ."
-        svn co $REV $REPO/$module $TMP_DIR/$module > /dev/null 2>&1 || exit_error
+        svn co $REV $REPO/$module $TMP_DIR/$module >> $OUTPUT_FILE 2>&1 || exit_error
         echo -n "."
         rm -rf $TMP_DIR/$module/debian
         echo -n "."
-        cp -r $module/debian $TMP_DIR/$module/debian > /dev/null 2>&1 || exit_error
+        cp -r $module/debian $TMP_DIR/$module/debian >> $OUTPUT_FILE 2>&1 || exit_error
         echo " OK"
     done
 
@@ -98,30 +97,53 @@ checkout_repositories(){
     echo " OK"
 }
 
-update_changelogs(){
+function c_module_version() {
+    local mod=$1
+
+    [ -z $mod ] && exit_error
+
+    VERSION=`grep AC_INIT $TMP_DIR/$mod/configure.ac | cut -d[ -f3 | cut -d] -f1 || exit_error`
+    if [ $VERSION = "v_ver" ]; then
+        MAJOR=`grep v_maj $TMP_DIR/$mod/configure.ac | xargs | cut -d[ -f3 | cut -d] -f1 || exit_error`
+        MINOR=`grep v_min $TMP_DIR/$mod/configure.ac | xargs | cut -d[ -f3 | cut -d] -f1 || exit_error`
+        MICRO=`grep v_mic $TMP_DIR/$mod/configure.ac | xargs | cut -d[ -f3 | cut -d] -f1 || exit_error`
+        if [ -z $MAJOR ] || [ -z $MINOR ] || [ -z $MICRO ]; then
+            exit_error
+        fi
+
+        VERSION=$MAJOR.$MINOR.$MICRO
+    fi
+}
+
+function update_changelogs(){
        echo "Updating changelogs ..."
     for module in ${ALL_MODULES[@]};do
-        echo -n "      $module .."
+        echo -n "      $module ."
 
         case $module in
             *efl-core)
-                VERSION=`grep AC_INIT $TMP_DIR/evas/configure.ac | cut -d[ -f3 | cut -d] -f1 || exit_error`
+                c_module_version "evas"
                 ;;
             python-*)
                 VERSION=`grep version $TMP_DIR/$module/setup.py | cut -d\' -f2 || exit_error`
                 ;;
             *)
-                VERSION=`grep AC_INIT $TMP_DIR/$module/configure.ac | cut -d[ -f3 | cut -d] -f1 || exit_error`
+                c_module_version "$module"
                 ;;
         esac
 
         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
+        if [ -z $VERSION ] || [ $VERSION = "v_ver" ]; then
+            exit_error
+        fi
+
+        echo -n "."
+        dch --force-distribution -b -c $TMP_DIR/$module/debian/changelog -v $VERSION.$E_SVN_REV-$MAEMO_REV -D $MAEMO_REPO "SVN snapshot release $E_SVN_REV" >> $OUTPUT_FILE 2>&1 || exit_error
         echo " `head -n1 $TMP_DIR/$module/debian/changelog`"
     done
 }
 
-gen_versions(){
+function gen_versions(){
     if [ ! -d $VERSIONS_DIR ]; then
         echo -n "Creating versions dir $VERSIONS_DIR ..."
         mkdir -p $VERSIONS_DIR || exit_error
@@ -168,9 +190,9 @@ gen_src_packages(){
         echo -n "      $module ."
         cd $TMP_DIR/$module || exit_error
         echo -n "."
-        dpkg-buildpackage -rfakeroot -us -uc -sa -d -S -I.git -I.gitignore -I.svn -I.svnignore -ICVS -I.cvsignore > /dev/null 2>&1|| exit_error
+        dpkg-buildpackage -rfakeroot -us -uc -sa -d -S -I.git -I.gitignore -I.svn -I.svnignore -ICVS -I.cvsignore >> $OUTPUT_FILE 2>&1|| exit_error
         echo -n "."
-        cd - > /dev/null 2>&1 || exit_error
+        cd - >> $OUTPUT_FILE 2>&1 || exit_error
         echo " OK"
     done
 }