Author: sparky
Date: Sat May 15 15:56:56 2010
New Revision: 11465

Modified:
   toys/tools/cleanbuild/multibuild
Log:
- option to continue automatically if last build succeeded and there
  were no changes


Modified: toys/tools/cleanbuild/multibuild
==============================================================================
--- toys/tools/cleanbuild/multibuild    (original)
+++ toys/tools/cleanbuild/multibuild    Sat May 15 15:56:56 2010
@@ -2,9 +2,15 @@
 
 b="$(echo -n -e '\033[1m')"
 B="$(echo -n -e '\033[22m')"
+r="$(echo -n -e '\033[31m')"
+g="$(echo -n -e '\033[32m')"
 c="$(echo -n -e '\033[33m')"
 e="$(echo -n -e '\033[0m')"
 
+ignore() { }
+MULTI_CONTINUE=false
+[ -r .cleanbuildrc ] && . ./.cleanbuildrc
+
 [ -d mbuild ] || mkdir mbuild
 
 end_pkg()
@@ -14,9 +20,11 @@
        mv mbuild/start.$package mbuild/$result.$package
 }
 
-next_pkg()
+get_pkg()
 {
+       list="$1"
        package=""
+       [ -r $list ] || return
        while read pkg info; do
                if [ ! -r mbuild/ok.$pkg ] && [ ! -r mbuild/fail.$pkg ] \
                                && [ ! -r mbuild/start.$pkg ]; then
@@ -24,7 +32,17 @@
                        touch mbuild/start.$package
                        break
                fi
-       done < blist
+       done < $list
+}
+
+
+next_pkg()
+{
+       get_pkg blist
+
+       [ -n "$package" ] && return
+
+       get_pkg blist2
 
        if [ -z "$package" ]; then
                echo "${c}Nothing to build${e}"
@@ -42,10 +60,26 @@
 
        OLDPWD="$PWD"
        cd $HOME/rpm/packages/$package
-       cvs -z3 diff -u $package.spec | colordiff
+       DIFF="$(cvs -z3 diff -u $package.spec)"
+       echo "$DIFF" | colordiff
        cd $OLDPWD
 
-       echo "$package build finished with exit status $ret"
+       if [ $ret -eq 0 ]; then
+               COLOR="$g"
+       else
+               COLOR="$r"
+       fi
+       echo "$COLOR$package build finished with exit status $ret$e"
+
+       if $MULTI_CONTINUE && [ $ret -eq 0 -a -z "$DIFF" ]; then
+               echo "Nothing changed: continuing\n"
+               ./clean "$@"
+               end_pkg
+               exec $0 "$@"
+               exit
+       fi
+
+       MULTI_CONTINUE=false
 
        while true; do
                echo
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to