#!/bin/sh
#
# Filename: mkdistrib
# Copyright (C) 1999, 2000 Czo <Olivier.Sirol@lip6.fr>
# License: GPL (http://www.gnu.org/copyleft/gpl.html)
# Started: April 2000
# Last Change: Thursday 10 October 2002, 18:42
# Edit Time: 207:26:11
# Description:
#
# $Id: mkdistrib,v 1.8 2002/10/10 16:42:58 czo Exp $
#

###################################################################
#set -x
#set -v

ALC_DISTRIBDIR=/users/soft5/newlabo/distrib

ALC_WKSLIST="bip beny"
ALC_FTPDISTRIBDIR=/users/largo2/ftp/pub/alliance/distribution/5.0
ALC_LOGFILE=/tmp/albuild.$$
ALC_FULL_LOGFILE="$ALC_DISTRIBDIR/alliance-mkdistrib-$$.log"

ALC_RELEASE=`date +%Y%m%d`
ALC_VERSION=5.0

ALC_DIR="alliance-$ALC_VERSION"
ALC_PACK="$ALC_DIR-$ALC_RELEASE"

ALC_TMPDIR=tmp-$$
ALC_TMPBUILD=tmpbuild-$$
ALC_TMPINSTALL=tmpinstall-$$
ALC_TMPALLIANCE=alliance-tmp-$$

ALC_TMPDESTDIR=tmpdestdir-$$
ALC_TMPBUILDDIR=tmpbuilddir-$$

CVSROOT=/users/outil/alliance/cvsroot
export CVSROOT


###################################################################

fail() {
echo -e "\
                                                             \n\
                                                             \n\
                   @@@@@@@@@        @      @@@@@@ @@@@@@     \n\
                     @@    @        @        @@     @@       \n\
                     @@     @      @@@       @@     @@       \n\
                     @@            @@@       @@     @@       \n\
                     @@   @       @  @@      @@     @@       \n\
                     @@@@@@       @  @@      @@     @@       \n\
                     @@   @      @    @@     @@     @@       \n\
                     @@          @@@@@@@     @@     @@       \n\
                     @@         @      @@    @@     @@      @\n\
                     @@         @      @@    @@     @@     @ \n\
                   @@@@@@     @@@@    @@@@ @@@@@@ @@@@@@@@@@ "
echo ""
}

pass() {
echo -e "\
                                                              \n\
                                                              \n\
                   @@@@@@@          @        @@@@ @    @@@@ @ \n\
                     @@   @@        @       @    @@   @    @@ \n\
                     @@    @@      @@@     @@     @  @@     @ \n\
                     @@    @@      @@@     @@@       @@@      \n\
                     @@   @@      @  @@     @@@@      @@@@    \n\
                     @@@@@        @  @@       @@@@      @@@@  \n\
                     @@          @    @@        @@@       @@@ \n\
                     @@          @@@@@@@   @      @@ @      @@\n\
                     @@         @      @@  @@     @@ @@     @@\n\
                     @@         @      @@  @@@    @  @@@    @ \n\
                   @@@@@@     @@@@    @@@@ @  @@@@   @  @@@@  "
echo ""
}

try1() {
((
echo "--> TRY $*"
$* 
EXECEXIT=$?
if [ $EXECEXIT != 0 ] ; then 
  fail
  echo " <-- ERROR: $*"
  exit $EXECEXIT
else
  echo " <-- OK: $*"
fi
) | perl -ne  'printf("%s%s", "[m", $_)' ) 2>&1 | perl -ne  'printf("%s%s%s", "[1;31;40m", $_, "[m")' 
}

try() {
echo "--> TRY $*"
$* 
EXECEXIT=$?
if [ $EXECEXIT != 0 ] ; then 
  fail
  echo " <-- ERROR: $*"
  exit $EXECEXIT
else
  echo " <-- OK: $*"
fi
}

###################################################################
(
((
echo "%%%%%%%%%%%%%%% mk-distrib"

try cd $ALC_DISTRIBDIR

echo "%%%%%%%%%%%%%%% Removing old test..."
mkdir $ALC_TMPDIR
mv alliance* tmpdestdir-* tmpbuilddir-* $ALC_TMPDIR
rm -fr  $ALC_TMPDIR &

echo "%%%%%%%%%%%%%%% Checkout CVS sources..."
cvs co -P alliance/src

try ./alliance/src/.asim

perl -pi -e "s§AC_DEFINE_UNQUOTED.*ALLIANCE_VERSION.*§AC_DEFINE_UNQUOTED(ALLIANCE_VERSION, \"$ALC_VERSION \[$ALC_RELEASE\]\")§" alliance/src/alliance.m4

perl -p -e "s§MYSPEC_VERSION§$ALC_VERSION§ ; s§MYSPEC_RELEASE§$ALC_RELEASE§" alliance/src/distrib/myspec > alliance/src/distrib/alliance.spec


echo "%%%%%%%%%%%%%%% Makedist, generation de alliance-5.0.tar.gz"

try cd alliance/src

try ./autostuff
cd ..
mkdir $ALC_TMPBUILD
mkdir $ALC_TMPINSTALL
try cd $ALC_TMPBUILD

export ALLIANCE_TOP=$ALC_DISTRIBDIR/alliance/$ALC_TMPINSTALL
export ALLIANCE_TOP

try ../src/configure --prefix=$ALLIANCE_TOP

try make install
try make distcheck

mv "$ALC_DIR.tar.gz" "$ALC_PACK.tar.gz"
mv -f "$ALC_PACK.tar.gz" ../..

cd ../..

mv alliance $ALC_TMPALLIANCE
(chmod -R 777 $ALC_TMPALLIANCE ; rm -fr $ALC_TMPALLIANCE)&

try tar -xvzf "$ALC_PACK.tar.gz"

ALLIANCE_TOP=/usr/local/alliance
export ALLIANCE_TOP

for WKS in $ALC_WKSLIST
do
try mkdir $ALC_TMPDESTDIR-$WKS $ALC_TMPBUILDDIR-$WKS
ssh -n $WKS "cd $ALC_DISTRIBDIR/$ALC_TMPBUILDDIR-$WKS ; \
ALLIANCE_TOP=$ALC_DISTRIBDIR/$ALC_TMPDESTDIR-$WKS/usr/local/alliance ; \
export ALLIANCE_TOP ; \
../$ALC_DIR/configure --prefix=/usr/local/alliance ; \
gmake DESTDIR=$ALC_DISTRIBDIR/$ALC_TMPDESTDIR-$WKS install && echo Alliance_compilation_OK"  2>&1 | tee $ALC_LOGFILE
try grep Alliance_compilation_OK $ALC_LOGFILE
try cd $ALC_DISTRIBDIR/$ALC_TMPDESTDIR-$WKS/usr/local
try tar chozf $ALC_DISTRIBDIR/$ALC_PACK-$WKS.tar.gz alliance
try cd $ALC_DISTRIBDIR
done

try mv $ALC_PACK-bip.tar.gz $ALC_PACK-i386-linux-2.4.9.tar.gz
try mv $ALC_PACK-beny.tar.gz $ALC_PACK-sparc-solaris-2.7.tar.gz

try rpm -ta $ALC_PACK.tar.gz

try cp -f "$ALC_PACK.tar.gz" $ALC_FTPDISTRIBDIR
try cp -f "$ALC_PACK-i386-linux-2.4.9.tar.gz" $ALC_FTPDISTRIBDIR
try cp -f "$ALC_PACK-sparc-solaris-2.7.tar.gz" $ALC_FTPDISTRIBDIR
try cp -f "/dsk/l1/tmp/czo/rpm/RPMS/i386/$ALC_PACK.i386.rpm" $ALC_FTPDISTRIBDIR


) | perl -ne  '$|=1; printf("%s%s", "[m", $_)' ) 2>&1 | perl -ne  '$|=1; printf("%s%s%s", "[1;31;40m", $_, "[m")' 

) 2>&1 | tee "$ALC_FULL_LOGFILE"
