Add Aneesh Kumar's repo browser to Porcelainistas.
[git.git] / DoKernelOrg
1 #!/bin/sh
2
3 J='-l 4 -j'
4 G=/pub/software/scm/git &&
5
6 cd $HOME/git &&
7 make clean >/dev/null 2>&1 &&
8 git reset --hard &&
9 make clean >/dev/null 2>&1 &&
10 git checkout master &&
11 git pull . origin &&
12 make clean >/dev/null 2>&1 &&
13
14 case "$1" in
15 '')
16         echo "* Building all"
17         branches='naster master maint'
18
19         # Make sure naster is between master and pu if exists
20         if naster=`git rev-parse --verify refs/heads/naster 2>/dev/null`
21         then
22                 master=`git rev-parse --verify refs/heads/master` &&
23                 pu=`git rev-parse --verify refs/heads/pu` &&
24                 MBM=`git merge-base --all $naster $master` &&
25                 MBN=`git merge-base --all $naster $pu` &&
26                 case ",$MBM,$MBN," in
27                 ",$master,$naster,") ;;
28                 *)      echo >&2 "naster is not between master and pu"
29                         exit 1 ;;
30                 esac
31                 # If naster is the same as pu, no point rebuilding pu.
32                 case ",$naster,$pu," in
33                 ",$pu,$naster,") ;;
34                 *) branches="$branches pu" ;;
35                 esac
36         fi
37
38         {
39                 nstalled=install
40                 for branch in $branches
41                 do
42                         if git-rev-parse --verify refs/heads/$branch 2>/dev/null
43                         then
44                                 echo "** $branch **" &&
45                                 git checkout $branch &&
46                                 make $J $nstalled &&
47                                 make test &&
48                                 make clean &&
49                                 nstalled=all || exit $?
50                         else
51                                 echo
52                                 echo "* NO $branch"
53                                 echo
54                         fi
55                 done
56         } >:all.log 2>&1
57         ;;
58 maint | master)
59         mkdir -p $G/RPMS/i386 $G/RPMS/SRPMS &&
60
61         echo "* Building $1"
62         git checkout "$1" &&
63         make rpm >./:rpm.log 2>&1 &&
64         make $J git >>./:rpm.log 2>&1 &&
65         V=`./git --version | sed -e 's/git version //'` &&
66         ln git-$V.tar.gz $G/. &&
67         ln $HOME/rpms/RPMS/i386/git*-$V-* $G/RPMS/i386/. &&
68         ln $HOME/rpms/SRPMS/git-$V-* $G/RPMS/SRPMS/. &&
69         {
70                 # I do not know how it exits, and I do not care much.
71                 /usr/local/bin/yummy $G/RPMS/i386
72                 /usr/local/bin/yummy $G/RPMS/SRPMS
73                 :
74         } &&
75         rm -fr ./:rpm.log &&
76         make clean &&
77
78         : ;;
79 esac || exit $?
80
81 git checkout master