Annotation of embedaddon/ntp/flock-build, revision 1.1.1.1

1.1       misho       1: #! /bin/sh
                      2: 
                      3: IAM=`hostname || uname -n`
                      4: MYNAME=`IFS=. ; set $IAM ; echo $1`
                      5: 
                      6: case "$1" in
                      7:  '--one'|'-1')
                      8:      shift
                      9:      FB_FIRSTONLY=1
                     10:      LIST=$MYNAME
                     11:      ;;
                     12:  *)
                     13:      FB_FIRSTONLY=0
                     14: esac
                     15: 
                     16: BUILD_ARGS="$@"
                     17: PARSE="--enable-parse-clocks"
                     18: #PARSE=
                     19: STD="--enable-simulator"
                     20: 
                     21: case "$SIMUL::$FB_FIRSTONLY" in
                     22:  ::*)
                     23:     PARALLEL_BUILDS=1
                     24:     ;;
                     25:  *::0)
                     26:     PARALLEL_BUILDS=$SIMUL
                     27:     ;;
                     28:  *)
                     29:     PARALLEL_BUILDS=1
                     30: esac
                     31: 
                     32: case "$PARALLEL_BUILDS" in
                     33:  1)  ;;
                     34:  *)  echo Launching $PARALLEL_BUILDS parallel builds on each machine
                     35: esac
                     36: 
                     37: # Backroom:
                     38: #   barnstable    freebsd-6.1
                     39: #   beauregard    freebsd-6.0
                     40: # X churchy       alpha-dec-osf5.1
                     41: #   deacon        sparc-sun-solaris2.10
                     42: #   grundoon      freebsd-6.2
                     43: #   howland       freebsd-6.1
                     44: # o macabre       freebsd-6.1-STABLE
                     45: # o mort          freebsd-6.1
                     46: #   whimsy        sparc-sun-solaris2.10
                     47: 
                     48: # Campus:
                     49: # * baldwin       sparc-sun-solaris2.10
                     50: # * bridgeport    sparc-sun-solaris2.10
                     51: # * malarky       sparc-sun-solaris2.10
                     52: # * pogo          sparc-sun-solaris2.10
                     53: # * rackety       freebsd-6.1
                     54: 
                     55: # HMS: we need $PWD because solaris produces /deacon/backroom when
                     56: # we are in /backroom and in general there is no /deacon/backroom.
                     57: c_d=${PWD:-`pwd`}
                     58: 
                     59: SIG=`perl -e 'print rand'`
                     60: 
                     61: case "$LIST" in
                     62:  '') LIST="malarky rackety" ;;
                     63: esac
                     64: 
                     65: for i in $LIST
                     66: do
                     67:     SKIPTHIS=0
                     68:     [ -f .buildkey-$i ] && SKIPTHIS=1
                     69:     case "$SKIPTHIS" in
                     70:      1)
                     71:        echo flock-build running on $i? check LIST, skipping
                     72:        ;;
                     73:      0)
                     74:        echo $i
                     75:        echo $SIG > .buildkey-$i
                     76:        case "1" in
                     77:         0)
                     78:            ssh $i "cd $c_d ; ./build $SIG $PARSE $STD $BUILD_ARGS" &
                     79:            ssh $i "cd $c_d ; ./build $SIG $PARSE $STD --without-crypto $BUILD_ARGS" &
                     80:            ssh $i "cd $c_d ; ./build $SIG        $STD --disable-all-clocks $BUILD_ARGS" &
                     81:            ;;
                     82:         1)
                     83:            cat > .flockbuild-$i-$SIG <<-ENDQUOT
                     84:                #!/bin/sh
                     85: 
                     86:                # script uses job control and expects to be invoked
                     87:                # in a ssh session started with the -tt option, 
                     88:                # which forces a pseudo-tty to be used.
                     89:                
                     90:                cd $c_d
                     91:                COUNT=0
                     92: 
                     93:                ./build $SIG $PARSE $STD $BUILD_ARGS &
                     94: 
                     95:                COUNT=\`expr \$COUNT + 1\`
                     96:                echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4
                     97:                [ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait
                     98: 
                     99:                case $FB_FIRSTONLY in
                    100:                 '0')
                    101:                        ./build $SIG $PARSE $STD --disable-debugging $BUILD_ARGS &
                    102: 
                    103:                        COUNT=\`expr \$COUNT + 1\`
                    104:                        echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4
                    105:                        [ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait
                    106: 
                    107:                        ./build $SIG $PARSE $STD --without-crypto $BUILD_ARGS &
                    108: 
                    109:                        COUNT=\`expr \$COUNT + 1\`
                    110:                        echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4
                    111:                        [ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait
                    112: 
                    113:                        ./build $SIG        $STD --disable-all-clocks $BUILD_ARGS &
                    114: 
                    115:                        COUNT=\`expr \$COUNT + 1\`
                    116:                        echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4
                    117:                        wait
                    118:                esac
                    119:                echo \`date -u '+%H:%M:%S'\` $i flock-build $c_d done.
                    120:                rm .buildkey-$i
                    121: ENDQUOT
                    122:            chmod +x .flockbuild-$i-$SIG
                    123:            ssh -tt $i "$c_d/.flockbuild-$i-$SIG ; \
                    124:                rm $c_d/.flockbuild-$i-$SIG" 2>/dev/null &
                    125:        esac
                    126:     esac
                    127: done
                    128: echo `date -u '+%H:%M:%S'` flock-build launched

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>