#!/bin/sh
-J=
-# J='-l 4 -j'
-nodo=echo
+J='-l 4 -j'
+G=/pub/software/scm/git &&
cd $HOME/git &&
-make clean &&
+make clean >/dev/null 2>&1 &&
git reset --hard &&
-make clean &&
+make clean >/dev/null 2>&1 &&
git checkout master &&
git pull . origin &&
-make clean &&
+make clean >/dev/null 2>&1 &&
case "$1" in
'')
- make $J install &&
- make test &&
- make clean &&
- git checkout pu &&
- make $J clean &&
- make test clean
+ echo "* Building all"
+ branches='naster master maint'
+
+ # Make sure naster is between master and pu if exists
+ if naster=`git rev-parse --verify refs/heads/naster 2>/dev/null`
+ then
+ master=`git rev-parse --verify refs/heads/master` &&
+ pu=`git rev-parse --verify refs/heads/pu` &&
+ MBM=`git merge-base --all $naster $master` &&
+ MBN=`git merge-base --all $naster $pu` &&
+ case ",$MBM,$MBN," in
+ ",$master,$naster,") ;;
+ *) echo >&2 "naster is not between master and pu"
+ exit 1 ;;
+ esac
+ # If naster is the same as pu, no point rebuilding pu.
+ case ",$naster,$pu," in
+ ",$pu,$naster,") ;;
+ *) branches="$branches pu" ;;
+ esac
+ fi
+
+ {
+ nstalled=install
+ for branch in $branches
+ do
+ if git-rev-parse --verify refs/heads/$branch 2>/dev/null
+ then
+ echo "** $branch **" &&
+ git checkout $branch &&
+ make $J $nstalled &&
+ make test &&
+ make clean &&
+ nstalled=all || exit $?
+ else
+ echo
+ echo "* NO $branch"
+ echo
+ fi
+ done
+ } >:all.log 2>&1
;;
maint | master)
- G=/pub/software/scm/git &&
+ mkdir -p $G/RPMS/i386 $G/RPMS/SRPMS &&
+ echo "* Building $1"
git checkout "$1" &&
- make rpm &&
- make $J git &&
- V=$(./git --version | sed -e 's/git version //') &&
- $nodo ln git-$V.tar.gz $G/. &&
- D=`pwd` &&
- M="git-man-pages-$V" &&
- rm -rf "$M" &&
- rm -f "$M".tar.gz &&
- make man1="$D/$M/man1" man7="$D/$M/man7" -C Documentation install &&
- $nodo tar zcf "$G/$M".tar.gz "$M" &&
- rm -fr "$M" &&
+ make rpm >./:rpm.log 2>&1 &&
+ make $J git >>./:rpm.log 2>&1 &&
+ V=`./git --version | sed -e 's/git version //'` &&
+ ln git-$V.tar.gz $G/. &&
+ ln $HOME/rpms/RPMS/i386/git*-$V-* $G/RPMS/i386/. &&
+ ln $HOME/rpms/SRPMS/git-$V-* $G/RPMS/SRPMS/. &&
+ {
+ # I do not know how it exits, and I do not care much.
+ /usr/local/bin/yummy $G/RPMS/i386
+ /usr/local/bin/yummy $G/RPMS/SRPMS
+ :
+ } &&
+ rm -fr ./:rpm.log &&
make clean &&
- $nodo ln $HOME/rpms/RPMS/i386/git*-$V-* $G/RPMS/i386/. &&
- $nodo ln $HOME/rpms/SRPMS/git-$V-* $G/RPMS/SRPMS/.
- ;;
+ : ;;
esac || exit $?
git checkout master