il faut reecrire instool...
This commit is contained in:
parent
efdce47c59
commit
39b4c7de9a
376
CVSROOT/instool
376
CVSROOT/instool
|
@ -1,370 +1,22 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# set -v
|
|
||||||
# set -x
|
|
||||||
#
|
#
|
||||||
# Installation script for the tools of the lab that plug on Alliance
|
# Filename: instool
|
||||||
|
# Copyright (C) 1999, 2000 Czo <Olivier.Sirol@lip6.fr>
|
||||||
|
# License: GPL (http://www.gnu.org/copyleft/gpl.html)
|
||||||
|
# Started: Feb 2002
|
||||||
|
# Last Change: Wednesday 27 February 2002, 11:31
|
||||||
|
# Edit Time: 0:15:25
|
||||||
|
# Description:
|
||||||
#
|
#
|
||||||
# Author: Frédéric Pétrot (fred@pasta.fr.ea)
|
# $Id: instool,v 1.29 2002/02/27 10:32:24 czo Exp $
|
||||||
# for version 0
|
|
||||||
#
|
|
||||||
# $Id: instool,v 1.28 2001/10/19 14:32:01 jpc Exp $
|
|
||||||
#
|
#
|
||||||
|
|
||||||
|
echo "Instool est desactivé."
|
||||||
#rsh ssh et .profile ...
|
|
||||||
#DATE=`date +"%Y.%m.%d_%H.%M.%S"`
|
|
||||||
|
|
||||||
DATE=`date +"%Y.%m.%d"`
|
|
||||||
mkdir -p $HOME/tmp
|
|
||||||
TMPDIR=$HOME/tmp
|
|
||||||
LOG=$TMPDIR/`basename $0`.$$
|
|
||||||
BUG=$TMPDIR/`basename $0`_bug.$$
|
|
||||||
|
|
||||||
BUGTEAM="fred ludo czo"
|
|
||||||
|
|
||||||
# rep par defaut : alliance/archi/$MACHINE
|
|
||||||
# alliance/share/...
|
|
||||||
TARGET="Solaris Linux"
|
|
||||||
NUM_TARGET=`echo $TARGET | wc -w`
|
|
||||||
|
|
||||||
LABO=/users/soft5/newlabo/alliance
|
|
||||||
CELL_EXTENSIONS="al ap vst vbe cp hns edi spi db dat IDX"
|
|
||||||
CELLS=$LABO/share/cells
|
|
||||||
ETC=$LABO/share/etc
|
|
||||||
MANS=$LABO/share/man
|
|
||||||
|
|
||||||
umask 002
|
|
||||||
alcbanner "Instool" "0.0 alpha" "Alliance Tools Installation Script" "1999"
|
|
||||||
echo ""
|
echo ""
|
||||||
|
echo "Il faut re ecrire un truc du genre : "
|
||||||
|
echo "cd tmp"
|
||||||
|
echo "cvs co toto"
|
||||||
|
echo "configure --prefix=/asim/alliance/Linux"
|
||||||
|
echo "make install"
|
||||||
echo ""
|
echo ""
|
||||||
echo "News: "
|
|
||||||
echo " the include are shared"
|
|
||||||
echo " a log of all installations is available in $HOME/tmp"
|
|
||||||
echo " a message MUST be given for each installation"
|
|
||||||
|
|
||||||
if [ $# -lt 2 -o $# -gt 4 ] ; then
|
|
||||||
echo "Syntax: `basename $0` [-v] tool-home-directory message"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $1 = "-v" ]; then
|
|
||||||
verbose=1
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
verbose=0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z $1 -o -z "${2:-''}" ] ; then
|
|
||||||
echo "Syntax: `basename $0` [-v] tool-home-directory message"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $verbose -ne 0 ] ; then
|
|
||||||
echo "`basename $0` : Checking directories"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d $1 ] ; then
|
|
||||||
echo "`basename $0` cannot install tool $1"
|
|
||||||
echo "Directory $1 doesn't exist!"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d $1/labo ] ; then
|
|
||||||
echo "`basename $0` cannot install tool $1"
|
|
||||||
echo "Directory $1/labo doesn't exist!"
|
|
||||||
exit 3
|
|
||||||
fi
|
|
||||||
|
|
||||||
for i in $TARGET ; do
|
|
||||||
if [ ! -d $1/labo/$i ] ; then
|
|
||||||
echo "`basename $0` cannot install tool $1"
|
|
||||||
echo "Directory $1/labo/$i doesn't exist!"
|
|
||||||
exit 4
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
bin=0; lib=0; inc=0
|
|
||||||
for i in $TARGET ; do
|
|
||||||
if [ -d $1/labo/$i/bin ] ; then
|
|
||||||
bin=`expr $bin + 1`
|
|
||||||
fi
|
|
||||||
if [ -d $1/labo/$i/lib ] ; then
|
|
||||||
lib=`expr $lib + 1`
|
|
||||||
fi
|
|
||||||
if [ -d $1/labo/$i/include ] ; then
|
|
||||||
inc=`expr $inc + 1`
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ $bin -eq 0 ]; then
|
|
||||||
echo "No binaries to install, ..."
|
|
||||||
unset bin
|
|
||||||
elif [ ! $bin -eq $NUM_TARGET ]; then
|
|
||||||
echo "`basename $0` cannot install tool $1"
|
|
||||||
echo "Directory $1/labo/archi/bin doesn't exist on all architectures"
|
|
||||||
exit 5
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $lib -eq 0 -a $inc -eq 0 ]; then
|
|
||||||
echo "No libraries to install, ..."
|
|
||||||
unset lib inc
|
|
||||||
elif [ ! \( $lib -eq $NUM_TARGET -a $inc -eq $NUM_TARGET \) ]; then
|
|
||||||
echo "`basename $0` cannot install tool $1"
|
|
||||||
echo "Directory $1/labo/archi/lib or/and $1/labo/archi/include "
|
|
||||||
echo "doesn't exist on all architectures"
|
|
||||||
exit 6
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ${bin:-0} -eq 0 -a ${lib:-0} -eq 0 -a ${inc:-0} -eq 0 ] ; then
|
|
||||||
echo "`basename $0` cannot install tool $1"
|
|
||||||
echo "Nothing to be installed"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
trap "rm -f $TMPDIR/*.$$ $LOG; exit 0" 0 1 2 15
|
|
||||||
#trap "exit 12" 0 1 2 15
|
|
||||||
|
|
||||||
if [ $verbose -ne 0 ] ; then
|
|
||||||
echo "`basename $0` : Checking directories contents for consistency"
|
|
||||||
fi
|
|
||||||
|
|
||||||
b=0
|
|
||||||
if [ ! ${bin:-0} -eq 0 ]; then
|
|
||||||
for i in $TARGET ; do
|
|
||||||
ls -1 $1/labo/$i/bin > $TMPDIR/$i.bin.$$ 2> /dev/null
|
|
||||||
if [ ! -s $TMPDIR/$i.bin.$$ ] ; then
|
|
||||||
b=`expr $b + 1`
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [ $b -eq $NUM_TARGET ] ; then
|
|
||||||
for i in $TARGET ; do
|
|
||||||
echo "Please remove $1/labo/$i/bin since it is empty"
|
|
||||||
done
|
|
||||||
unset bin
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
l=0
|
|
||||||
h=0
|
|
||||||
if [ ! ${lib:-0} -eq 0 ]; then
|
|
||||||
for i in $TARGET ; do
|
|
||||||
ls -1 $1/labo/$i/lib > $TMPDIR/$i.lib.$$ 2> /dev/null
|
|
||||||
ls -1 $1/labo/$i/lib/*.a | awk -F/ '{print $NF}' > $TMPDIR/$i.lib.a.$$ 2> /dev/null
|
|
||||||
diff $TMPDIR/$i.lib.$$ $TMPDIR/$i.lib.a.$$ > /dev/null 2>&1
|
|
||||||
if [ ! $? -eq 0 ] ; then
|
|
||||||
echo "`basename $0` cannot install tool $1"
|
|
||||||
echo "directory $1/labo/$i/lib contains files "
|
|
||||||
echo "that do not end with .a"
|
|
||||||
exit 7
|
|
||||||
fi
|
|
||||||
ls -1 $1/labo/$i/include > $TMPDIR/$i.inc.$$ 2> /dev/null
|
|
||||||
ls -1 $1/labo/$i/include/*.h | awk -F/ '{print $NF}' > $TMPDIR/$i.inc.h.$$ 2> /dev/null
|
|
||||||
diff $TMPDIR/$i.inc.$$ $TMPDIR/$i.inc.h.$$ > /dev/null 2>&1
|
|
||||||
if [ ! $? -eq 0 ] ; then
|
|
||||||
echo "`basename $0` cannot install tool $1"
|
|
||||||
echo "directory $1/labo/$i/include contains files "
|
|
||||||
echo "that do not end with .h"
|
|
||||||
exit 7
|
|
||||||
fi
|
|
||||||
if [ ! -s $TMPDIR/$i.lib.$$ ] ; then
|
|
||||||
l=`expr $l + 1`
|
|
||||||
fi
|
|
||||||
if [ ! -s $TMPDIR/$i.inc.$$ ] ; then
|
|
||||||
h=`expr $h + 1`
|
|
||||||
fi
|
|
||||||
if [ \( ! -s $TMPDIR/$i.lib.$$ -a -s $TMPDIR/$i.inc.$$ \) -o \
|
|
||||||
\( -s $TMPDIR/$i.lib.$$ -a ! -s $TMPDIR/$i.inc.$$ \) ] ; then
|
|
||||||
echo "`basename $0` cannot install tool $1"
|
|
||||||
echo "Libraries requires includes and vice-versa"
|
|
||||||
exit 7
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [ $l -eq $NUM_TARGET ] ; then
|
|
||||||
echo "Please remove $1/labo/archi/lib since it is empty "
|
|
||||||
unset lib
|
|
||||||
fi
|
|
||||||
if [ $h -eq $NUM_TARGET ] ; then
|
|
||||||
echo "Please remove $1/labo/archi/include since it is empty "
|
|
||||||
unset inc
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ${bin:-0} -eq 0 -a ${lib:-0} -eq 0 -a ${inc:-0} -eq 0 ] ; then
|
|
||||||
echo "`basename $0` cannot install tool $1"
|
|
||||||
echo "Nothing to install"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
DIR=`echo ${bin:+bin} ${lib:+lib} ${inc:+include}`
|
|
||||||
|
|
||||||
bins=0; libs=0; incs=0
|
|
||||||
for i in $TARGET ; do
|
|
||||||
for j in $TARGET ; do
|
|
||||||
if [ ! ${bin:-0} -eq 0 ]; then
|
|
||||||
diff $TMPDIR/$j.bin.$$ $TMPDIR/$i.bin.$$ > /dev/null 2>&1
|
|
||||||
bins=`expr $bins + $?`
|
|
||||||
fi
|
|
||||||
if [ ! ${lib:-0} -eq 0 ]; then
|
|
||||||
diff $TMPDIR/$j.lib.$$ $TMPDIR/$i.lib.$$ > /dev/null 2>&1
|
|
||||||
libs=`expr $libs + $?`
|
|
||||||
diff $TMPDIR/$j.inc.$$ $TMPDIR/$i.inc.$$ > /dev/null 2>&1
|
|
||||||
incs=`expr $incs + $?`
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ $bins -gt 0 -o $libs -gt 0 -o $incs -gt 0 ] ; then
|
|
||||||
echo "`basename $0` cannot install tool $1"
|
|
||||||
echo "all bin/lib/include directories do not contain the same files"
|
|
||||||
echo "for all target architectures"
|
|
||||||
exit 8
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "`basename $0`: Checking for space on disk :"
|
|
||||||
s=1
|
|
||||||
for i in $TARGET; do
|
|
||||||
for j in $DIR; do
|
|
||||||
d=`du -s $1/labo/$i/$j 2>/dev/null | tail -1 | cut -f 1`
|
|
||||||
s=`expr $s + $d`
|
|
||||||
done
|
|
||||||
done
|
|
||||||
a=`df $LABO | sed -e 's/ */ /g' | tail -1 | cut -f 4`
|
|
||||||
|
|
||||||
if [ $verbose -ne 0 ] ; then
|
|
||||||
echo "Available disk space $a"
|
|
||||||
echo "Required disk space $s"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $s -gt $a ] ; then
|
|
||||||
echo "`basename $0`: cannot install tool $1"
|
|
||||||
echo "Not enough space on device for the installation"
|
|
||||||
echo "Ring me again in a few days, ..."
|
|
||||||
exit 23
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $verbose -ne 0 ] ; then
|
|
||||||
echo "The real stuff right now, ..."
|
|
||||||
fi
|
|
||||||
|
|
||||||
for i in $TARGET ; do
|
|
||||||
echo "+---------------------------------------------------" >> $LOG
|
|
||||||
echo "Target $i " >> $LOG
|
|
||||||
for j in $DIR ; do
|
|
||||||
echo "+---------------------" >> $LOG
|
|
||||||
echo "directory $j " >> $LOG
|
|
||||||
if [ $j = "bin" ] ; then
|
|
||||||
for k in $1/labo/$i/$j/*; do
|
|
||||||
cp $k $LABO/archi/$i/$j/`basename $k`.$DATE
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
echo "`basename $0`: cp returned a non-zero exit status"
|
|
||||||
echo cp $k $LABO/archi/$i/$j/`basename $k`.$DATE
|
|
||||||
echo "that sucks pretty much so I quit leaving things as is"
|
|
||||||
exit 17
|
|
||||||
fi
|
|
||||||
chmod 775 $LABO/archi/$i/$j/`basename $k`.$DATE
|
|
||||||
rm -f $LABO/archi/$i/$j/`basename $k` > /dev/null 2>&1
|
|
||||||
ln -s $LABO/archi/$i/$j/`basename $k`.$DATE $LABO/archi/$i/$j/`basename $k`
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
echo "`basename $0`: ln returned a non-zero exit status"
|
|
||||||
echo ln -s $LABO/archi/$i/$j/`basename $k`.$DATE $LABO/archi/$i/$j/`basename $k`
|
|
||||||
echo "that sucks pretty much so I quit leaving things as is"
|
|
||||||
exit 17
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
elif [ $j = "lib" ] ; then
|
|
||||||
for k in $1/labo/$i/$j/*; do
|
|
||||||
cp $k $LABO/archi/$i/$j >> $BUG 2>&1
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
echo "`basename $0`: cp returned a non-zero exit status"
|
|
||||||
echo cp $k $LABO/archi/$i/$j
|
|
||||||
echo "that sucks pretty much so I quit leaving things as is"
|
|
||||||
exit 17
|
|
||||||
fi
|
|
||||||
if [ $i = "SunOS" ] ; then
|
|
||||||
ssh heavy ranlib $LABO/archi/$i/$j/`basename $k`
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
else
|
|
||||||
cp $1/labo/$i/$j/* $LABO/archi/$i/$j >> $BUG 2>&1
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
echo "`basename $0`: cp returned a non-zero exit status"
|
|
||||||
echo cp $1/labo/$i/$j/* $LABO/archi/$i/$j
|
|
||||||
echo "that sucks pretty much so I quit leaving things as is"
|
|
||||||
exit 17
|
|
||||||
fi
|
|
||||||
chmod 664 $LABO/archi/$i/$j/* >> $BUG 2>&1
|
|
||||||
fi
|
|
||||||
ls -1 $1/labo/$i/$j | fmt -70 >> $LOG
|
|
||||||
done
|
|
||||||
done
|
|
||||||
for i in $DIR; do
|
|
||||||
if [ $i = "lib" ] ; then
|
|
||||||
if [ -f $TMPDIR/libraries.mk.* ] ; then
|
|
||||||
echo "`basename $0`: Sorry, somebody is updating libraries.mk"
|
|
||||||
echo "waiting until the update is done to finish"
|
|
||||||
fi
|
|
||||||
while [ -f $TMPDIR/libraries.mk.$$ ]; do
|
|
||||||
sleep 2
|
|
||||||
echo "Still waiting, ..."
|
|
||||||
done
|
|
||||||
/users/outil/alliance/cvsroot/CVSROOT/updatelibmk $LABO/archi/Linux > $TMPDIR/libraries.mk.$$
|
|
||||||
mv -f $ETC/libraries.mk $ETC/libraries.mk.$DATE
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
echo "`basename $0`: mv returned a non-zero exit status"
|
|
||||||
echo "while copying libraries.mk to libraries.mk.$$"
|
|
||||||
echo "that sucks pretty much so I quit leaving things as is"
|
|
||||||
exit 17
|
|
||||||
fi
|
|
||||||
mv -f $TMPDIR/libraries.mk.$$ $ETC/libraries.mk
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
echo "`basename $0`: mv returned a non-zero exit status"
|
|
||||||
echo "while copying libraries.mk to libraries.mk.$$"
|
|
||||||
echo "that sucks pretty much so I quit leaving things as is"
|
|
||||||
exit 17
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo >> $LOG
|
|
||||||
if [ -s $BUG ] ; then
|
|
||||||
mail -s "ALC : Problem while installing `basename $1`" $BUGTEAM < $BUG
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat $LOG >> $TMPDIR/`basename $1`.log
|
|
||||||
|
|
||||||
|
|
||||||
# mail alcteam
|
|
||||||
#echo $* | mail -s "ALC : Install of `basename $1`" alliance-programmers@asim.lip6.fr
|
|
||||||
|
|
||||||
TMPFILE=/tmp/instool.$$
|
|
||||||
FINGER=`who am i | awk '{gsub(/^[^\!]*\!/,""); print $1}'`
|
|
||||||
SUJ="Instool de `basename $1`"
|
|
||||||
|
|
||||||
(
|
|
||||||
echo "===================================================================="
|
|
||||||
echo "$SUJ"
|
|
||||||
echo "le : `date`"
|
|
||||||
echo "par : $FINGER"
|
|
||||||
echo "===================================================================="
|
|
||||||
echo ""
|
|
||||||
echo $*
|
|
||||||
echo ""
|
|
||||||
echo "===================================================================="
|
|
||||||
echo "Ce message est envoyé au personnes abonnées à alliance-programmers"
|
|
||||||
echo "Pour plus d'information sur cette mailling-list, visitez :"
|
|
||||||
echo "http://www-asim.lip6.fr/alliance/mailing-lists/"
|
|
||||||
|
|
||||||
) > "$TMPFILE"
|
|
||||||
|
|
||||||
cat "$TMPFILE" | mail -s "ALC : $SUJ" alliance-programmers@asim.lip6.fr
|
|
||||||
|
|
||||||
rm -f "$TMPFILE" dummy
|
|
||||||
|
|
||||||
# echo "Launching chgrp and chmod ..."
|
|
||||||
# chgrp -R 30101 /users/soft5/newlabo/alliance-4.5.0
|
|
||||||
# chmod -R ug+rw /users/soft5/newlabo/alliance-4.5.0
|
|
||||||
# find /users/soft5/newlabo/alliance-4.5.0 -type d | xargs chmod 2775
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue