#!/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: Wednesday 10 December 2003, 16:49
# Edit Time: 208:03:15
# Description:
#
# $Id: mkdistrib,v 1.13 2004/07/13 22:41:21 alliance Exp $
#


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

ALC_DISTRIBDIR=/users/soft5/newlabo/distrib

solaris=sparc-solaris-2.9
linux=i386-linux-2.6.6

ALC_WKSLIST="tsunami funk"
ALC_FTPDISTRIBDIR=/users/largo2/ftp/pub/alliance/distribution/5.0
ALC_LOGFILE=/tmp/albuild.$$
ALC_FULL_LOGFILE="$ALC_DISTRIBDIR/amkdistrib.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 || (echo "CVS ERROR, exiting" ; exit 4)

try ./alliance/src/.asim

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

#perl -p -e "sMYSPEC_VERSION$ALC_VERSION ; sMYSPEC_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)&

RPM_MACROS="$HOME/.rpmmacros"
RPM_TOPDIR="`pwd`/rpm"
rm -f $RPM_MACROS
echo "%_topdir   $RPM_TOPDIR"     >> $RPM_MACROS
echo "%_tmppath  %{_topdir}/tmp"  >> $RPM_MACROS
for dir in $RPM_TOPDIR             \
           $RPM_TOPDIR/SPECS       \
           $RPM_TOPDIR/SOURCES     \
           $RPM_TOPDIR/BUILD       \
           $RPM_TOPDIR/SRPMS       \
           $RPM_TOPDIR/RPMS/noarch \
           $RPM_TOPDIR/RPMS/i386   \
           $RPM_TOPDIR/tmp
do
  if [ ! -d "$dir" ]; then mkdir -p $dir; fi
done





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

ALLIANCE_TOP=/opt/alliance-$ALC_VERSION
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/opt/alliance-$ALC_VERSION ; \
export ALLIANCE_TOP ; \
../$ALC_DIR/configure --prefix=/opt/alliance-$ALC_VERSION ; \
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/opt
try tar chozf $ALC_DISTRIBDIR/$ALC_PACK-$WKS.tar.gz alliance-$ALC_VERSION
try cd $ALC_DISTRIBDIR
done

try mv $ALC_PACK-tsunami.tar.gz $ALC_PACK-$linux.tar.gz
try mv $ALC_PACK-funk.tar.gz $ALC_PACK-$solaris.tar.gz
try rpmbuild -ta --clean --define "release $ALC_RELEASE" $ALC_PACK.tar.gz

try cp -f "$ALC_PACK.tar.gz" $ALC_FTPDISTRIBDIR
try cp -f "$ALC_PACK-$linux.tar.gz" $ALC_FTPDISTRIBDIR
try cp -f "$ALC_PACK-$solaris.tar.gz" $ALC_FTPDISTRIBDIR

try cp -fp $RPM_TOPDIR/RPMS/i386/alliance*.rpm $ALC_FTPDISTRIBDIR
try cp -fp $RPM_TOPDIR/SRPMS/alliance*.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"
