User:Xavivars/ApertiumInstaller
< User:Xavivars(Redirected from User:Xavivars/installer)
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