User:Xavivars/ApertiumInstaller
Jump to navigation
Jump to search
Script per a instalar automàticament LTTOOLBOX, APERTIUM, un paquet d'idioma i habilitar el mode d'estadístiques.
#!/bin/bash
######################################################################################
#
# APERTIUM INSTALL
#
######################################################################################
errormsg()
{
cat - << EOF
S'ha produït un error mentre s'insta\u0140lava el paquet $1.
Comproveu els errors que s'han produït i contacteu amb l'administrador del vostre sistema.
EOF
}
fullusage()
{
cat - << EOF
This script installs lttoolbox and apertium packages, as well as language pairs defined as arguments.
Aquest guió instal·la els paquets lttoolbox i apertium, i els parells de llengües definits com a arguments.
EOF
usage
}
usage()
{
cat - << EOF
usage: $0 [-h|--help] [-l pair [-s]] [-i|--install local|global [-p path]]
example: $0 -l es-ca -i global
EOF
}
while getopts ":hl:i:p:s" opt ; do
case $opt in
h ) fullusage ; exit 1;;
l ) APERTLANG=$OPTARG ;;
i ) TYPEINSTALL=$OPTARG ;;
p ) PREFIX=$OPTARG ;;
s ) STATS=1 ;;
? ) echo "An invalid option was encountered."; echo "S'ha trobat una opció invàlida."; echo; usage ; exit 1;;
* ) echo "An unexpected error occured."; echo "S'ha produit un error desconegut."; echo; usage ; exit 1 ;;
esac
done
shift $((OPTIND - 1))
if [ x$APERTLANG != x ]; then
echo "Language selected: $APERTLANG"
else
echo "No language pair selected"
fi
if [ x$TYPEINSTALL != x ]; then
echo "$TYPEINSTALL installation mode"
if [ x$TYPEINSTALL != xlocal ]; then
TYPEINSTALL=global
fi
else
echo "Default installation mode"
fi
###
# preparem la ruta de la instalacio
#
if [ x$TYPEINSTALL = xlocal ]; then
if [ x$PREFIX = x ]; then
PREFIX=~/local/
fi
MKINST=""
else
PREFIX=/usr/local/
MKINST="sudo "
fi
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig/
export PKG_CONFIG_PATH
LD_LIBRARY_PATH=$PREFIX/lib
export LD_LIBRARY_PATH
PATH=$PREFIX/bin/:$PATH
export PATH
LOGFILE=`pwd`/`date +%Y%m%e-%H%M%S`.logfile
###
# comprovem si ja està insta\u0140lat lttoolbox, i actuem
# en consecuència
#
echo "Insta\u0140lant el paquet LTTOOLBOX..."
if [ ! -e $PREFIX/bin/lt-proc ]; then
# no existeix lttoolbox, per tant l'insta\u0140lem
for f in *lttoolbox*;do LTTOOLBOXPACK=$f;break;done
LTTOOLBOXFOLDER=`tar tzf $LTTOOLBOXPACK | head -n 1`
tar xzf $LTTOOLBOXPACK
if [ x$LTTOOLBOXFOLDER != x ]; then
if [ -d $LTTOOLBOXFOLDER ]; then
cd $LTTOOLBOXFOLDER
if [ -e ./configure ]; then
./configure --prefix=$PREFIX >> $LOGFILE 2>&1
else
./autogen.sh --prefix=$PREFIX >> $LOGFILE 2>&1
fi
make >> $LOGFILE 2>&1
$MKINST make install >> $LOGFILE 2>&1
rm -rf * >> $LOGFILE 2>&1
rm -rf .* >> $LOGFILE 2>&1
cd ..
rmdir $LTTOOLBOXFOLDER
TOADDPATH="PATH=$PREFIX/bin/:\$PATH;export PATH;"
echo "" >> ~/.bashrc
echo $TOADDPATH >> ~/.bashrc
echo "" >> ~/.bashrc
echo "LTTOOLBOX insta\u0140lat correctament"
fi
fi
else
echo "LTTOOLBOX ja està insta\u0140lat"
fi
if [ ! -e $PREFIX/bin/lt-proc ]; then
errormsg "lttoolbox"
exit 1
fi
###
# comprovem si ja està insta\u0140lat apertium, i actuem
# en consecuència
#
echo "Insta\u0140lant el paquet APERTIUM..."
if [ ! -e $PREFIX/bin/apertium-transfer ]; then
# no existeix apertium, per tant l'insta\u0140lem
for f in *apertium*;do APERTIUMPACK=$f;break;done
APERTIUMFOLDER=`tar tzf $APERTIUMPACK | head -n 1`
tar xzf $APERTIUMPACK
if [ x$APERTIUMFOLDER != x ]; then
if [ -d $APERTIUMFOLDER ]; then
cd $APERTIUMFOLDER
if [ -e ./configure ]; then
./configure --prefix=$PREFIX >> $LOGFILE 2>&1
else
./autogen.sh --prefix=$PREFIX >> $LOGFILE 2>&1
fi
make >> $LOGFILE 2>&1
$MKINST make install >> $LOGFILE 2>&1
rm -rf * >> $LOGFILE 2>&1
rm -rf .* >> $LOGFILE 2>&1
cd ..
rmdir $APERTIUMFOLDER
echo "APERTIUM insta\u0140lat correctament"
fi
fi
else
echo "APERTIUM ja està insta\u0140lat"
fi
if [ ! -e $PREFIX/bin/apertium-transfer ]; then
errormsg "apertium"
exit 1
fi
###
# si no cal instalar paquet d'idioma...
#
if [ x$APERTLANG = x ]; then
exit 1;
fi
###
# comprovem si està insta\u0140lat el paquet d'idioma
#
echo "Insta\u0140lant el paquet d'idioma $APERTLANG..."
if [ ! -e $PREFIX/share/apertium/apertium-$APERTLANG ]; then
# no existeix lttoolbox, per tant l'insta\u0140lem
for f in *apertium*"$APERTLANG"*;do LANGPACK=$f;break;done
LANGFOLDER=`tar tzf $LANGPACK | head -n 1`
tar xzf $LANGPACK
if [ x$LANGFOLDER != x ]; then
if [ -d $LANGFOLDER ]; then
cd $LANGFOLDER
echo $PKG_CONFIG_PATH
if [ -e ./configure ]; then
./configure --prefix=$PREFIX >> $LOGFILE 2>&1
else
./autogen.sh --prefix=$PREFIX >> $LOGFILE 2>&1
fi
make >> $LOGFILE 2>&1
$MKINST make install >> $LOGFILE 2>&1
rm -rf * >> $LOGFILE 2>&1
rm -rf .* >> $LOGFILE 2>&1
cd ..
rmdir $LANGFOLDER
echo "APERTIUM-$APERTLANG insta\u0140lat correctament"
fi
fi
else
echo "APERTIUM-$APERTLANG ja està insta\u0140lat"
fi
if [ ! -e $PREFIX/share/apertium/apertium-$APERTLANG ]; then
errormsg "apertium-"$APERTLANG
exit 1
fi
###
# una vegada instalat el paquet d'idioma, habilitem
# els modes d'estadístiques
#
if [ x$STATS != x ]; then
echo "Habilitant el mode d'estadístiques..."
MODES=`find $PREFIX/share/apertium/apertium-$APERTLANG -name '*.mode' -exec basename {} .mode \;`
for arg in $MODES
do
RUTA=$PREFIX/share/apertium/modes/
MODE=$RUTA$arg.mode
ESTADISTIQUES=$RUTA$arg-estadistiques.mode
echo " ... direcció $arg"
sed -e "s/automorf\.bin |/automorf\.bin \> \$LOGSDIR.tmp.\$SEC.org;/" < $MODE |\
sed -e "s/\.prob |/\.prob < \$LOGSDIR.tmp.\$SEC.org |/" > $ESTADISTIQUES
done
fi