]> git.pld-linux.org Git - projects/cleanbuild.git/blobdiff - multibuild
findbr: check errors from mkmf.log as well
[projects/cleanbuild.git] / multibuild
index 7061b24e4bf765a837aab69cefb9e1c2416c183a..acf5330488bcdc7871e64530f50cee722e726b49 100755 (executable)
@@ -1,5 +1,16 @@
 #!/bin/sh
 
+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()
@@ -9,20 +20,32 @@ end_pkg()
        mv mbuild/start.$package mbuild/$result.$package
 }
 
-next_pkg()
+get_pkg()
 {
+       list="$1"
        package=""
-       while read pkg; do
+       [ -r $list ] || return
+       while read pkg info; do
                if [ ! -r mbuild/ok.$pkg ] && [ ! -r mbuild/fail.$pkg ] \
                                && [ ! -r mbuild/start.$pkg ]; then
                        package="$pkg"
                        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 "Nothing to build"
+               echo "${c}Nothing to build${e}"
                exit
        fi
 }
@@ -31,64 +54,98 @@ next_pkg()
 package=
 next_pkg
 build="cleanbuild"
-
-b="$(echo -n -e '\033[1m')"
-B="$(echo -n -e '\033[22m')"
-c="$(echo -n -e '\033[33m')"
-e="$(echo -n -e '\033[0m')"
 while true; do
-       ./$build "$@" $package
+       time ./$build "$@" $package
        ret=$?
 
-       echo "$package build finished with exit status $ret"
-       echo
+       OLDPWD="$PWD"
+       cd $HOME/rpm/packages/$package
+       DIFF="$(cvs -z3 diff -u $package.spec)"
+       echo "$DIFF" | colordiff
+       cd $OLDPWD
+
+       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
-               if [ $ret -eq 0 ]; then
-                       echo -n "${b}c${B}lean rebuild," \
-                               "re${b}b${B}uild, $c${b}n${B}ext$e ? "
-               else
-                       echo -n "${b}c${B}lean rebuild," \
-                               "${c}re${b}b${B}uild$e, ${b}n${B}ext ? "
-               fi
+               echo
+               echo -n "${c}clean ${b}r${B}ebuild," "re${b}b${B}uild," \
+                       "${b}i${B}nstall," "${b}a${B}ddbr," \
+                       "${b}v${B}im," "${b}c${B}i," \
+                       "${b}l${B}og," "${b}N${B}ext ?${e} "
 
                read ans
                case "x$ans" in
-                       x[rRcC])
+                       x[rR])
                                build="cleanbuild"
                                ;;
                        x[bB])
                                build="build"
                                ;;
-                       x[nN])
-                               end_pkg
-                               build="cleanbuild"
+                       x[iI])
+                               echo -n "${c}install>${e} "
+                               read pkg
+                               ./install "$@" $pkg
+                               echo "pkg installed with exit status $?"
+                               continue
+                               ;;
+                       x[aA])
+                               echo -n "${c}br>${e} "
+                               read pkg
+                               ./install "$@" $pkg
+                               echo "pkg installed with exit status $?"
+                               [ $? == 0 ] && ./addbr $package $pkg "requested"
+                               continue
+                               ;;
+                       x[vV])
+                               vim $HOME/rpm/packages/$package/$package.spec
+                               continue
+                               ;;
+                       x[cC])
+                               cd $HOME/rpm/packages/
+                               ./ci $package
+                               cd -
+                               continue
+                               ;;
+                       x[lL])
+                               vim buildlogs/$package
+                               continue
+                               ;;
+                       xN)
                                ./clean "$@"
-                               next_pkg
+                               end_pkg
+                               exec $0 "$@"
+                               exit
+                               ;;
+                       xn)
+                               echo "upper case N required"
+                               continue
                                ;;
                        x[qQ])
+                               ./clean "$@"
                                end_pkg
                                exit
                                ;;
-                       x)
-                               if [ $ret -eq 0 ]; then
-                                       end_pkg
-                                       build="cleanbuild"
-                                       ./clean "$@"
-                                       next_pkg
-                               else
-                                       build="build"
-                               fi
-                               ;;
                        *)
                                continue
                                ;;
                esac
-
                break
        done
-                               
-
 done
 
 # vim: ts=4:sw=4
This page took 0.049281 seconds and 4 git commands to generate.