#!/bin/sh J='-l 4 -j' G=/pub/software/scm/git && cd $HOME/git && make clean >/dev/null 2>&1 && git reset --hard && make clean >/dev/null 2>&1 && git checkout master && git pull . origin && make clean >/dev/null 2>&1 && case "$1" in '') 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) mkdir -p $G/RPMS/i386 $G/RPMS/SRPMS && echo "* Building $1" git checkout "$1" && 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 && : ;; esac || exit $? git checkout master