#!/bin/bash
#-------------------#
# OTMEDIA LIA #
# Install script #
# version : 1.1.0 #
#-------------------#
# nyx login name
username=${LOGNAME}
# Color variables
txtred=$(tput setaf 1) # red
txtgrn=$(tput setaf 2) # Green
txtylw=$(tput setaf 3) # Yellow
txtblu=$(tput setaf 4) # Blue
txtred=$(tput setaf 5) # Purple
txtcyn=$(tput setaf 6) # Cyan
txtwht=$(tput setaf 7) # White
txtrst=$(tput sgr0) # Text reset.
#/color
#
### Global Variables
#
PWD=$(pwd)
OTMEDIA_HOME=$PWD
test=$(arch)
if [ "$test" == "x86_64" ]; then ARCH=".64"; else ARCH=""; fi
#/Global
#
# Put to 0 to disable dependencies of a pass
# and 1 to enable
#
PASS1=1 # First Pass
PASS2=1 # Second and Third Pass
CONFPASS=1 # Confidence Pass
EXPLOITCONFPASS=1 # SOLR query and trigg
SCORING=1 # Compile scoring tools (crf++)
echo -e "\nWill do install for :"
if [ $PASS1 -eq 1 ];then echo "- Pass 1";fi
if [ $PASS2 -eq 1 ];then echo "- Pass 2";fi
if [ $CONFPASS -eq 1 ];then echo "- Confidence Pass";fi
if [ $EXPLOITCONFPASS -eq 1 ];then echo "- Exploit Confidence Pass";fi
if [ $SCORING -eq 1 ];then echo "- Scoring Tools";fi
#
### CHECK Dependencies ###
#
echo -e "\n\t${txtblu}Check Dependencies${txtrst}\n"
## make
test=$(whereis make)
if [ "$test" == "make:" ]
then
echo -e "${txtred}ERROR${txtrst} make not found\n You have to install make\n sudo apt-get install make"
exit 1;
fi
echo -e "make \t ${txtgrn}OK${txtrst}"
## CC
test=$(whereis cc)
if [ "$test" == "cc:" ]
then
echo -e "${txtred}ERROR${txtrst} cc not found\n You have to install cc\n sudo apt-get install gcc"
exit 1;
fi
echo -e "cc \t ${txtgrn}OK${txtrst}"
## C++
if [ $SCORING -eq 1 ]
then
test=$(whereis g++)
if [ "$test" == "g++:" ]
then
echo -e "${txtred}ERROR${txtrst} g++ not found\n You have to install g++\n sudo apt-get install g++"
exit 1;
fi
echo -e "g++ \t ${txtgrn}OK${txtrst}"
fi
## AVCONV
test=$(whereis avconv)
if [ "$test" == "avconv:" ]
then
echo -e "${txtred}ERROR${txtrst} avconv not found\n You have to install avconv\n sudo apt-get install libav-tools"
exit 1;
fi
echo -e "libav-tools : avconv \t ${txtgrn}OK${txtrst}"
## JAVA
test=$(whereis java)
if [ "$test" == "java:" ]
then
echo -e "${txtred}ERROR${txtrst} java not found\n You have to install java JRE\n sudo apt-get install openjdk-7-jre"
exit 1;
fi
echo -e "Java : JRE \t ${txtgrn}OK${txtrst}"
test=$(whereis javac)
if [ "$test" == "javac:" ]
then
echo -e "${txtred}ERROR${txtrst} javac not found\n You have to install java JDK\n sudo apt-get install openjdk-7-jdk"
exit 1;
fi
echo -e "Java : JDK \t ${txtgrn}OK${txtrst}"
if [ $EXPLOITCONFPASS -eq 1 ]
then
## Python
test=$(whereis python)
if [ "$test" == "python:" ]
then
echo -e "${txtred}ERROR${txtrst} python not found\n You have to install python\n sudo apt-get install python"
exit 1;
fi
echo -e "python : \t ${txtgrn}OK${txtrst}"
## csh shell
test=$(whereis csh)
if [ "$test" == "csh:" ]
then
echo -e "${txtred}ERROR${txtrst} csh shell not found\n You have to install csh shell\n sudo apt-get install csh"
exit 1;
fi
echo -e "csh shell : \t ${txtgrn}OK${txtrst}"
fi
## Perl
test=$(whereis perl)
if [ "$test" == "perl:" ]
then
echo -e "${txtred}ERROR${txtrst} perl not found\n You have to install perl\n sudo apt-get install perl"
exit 1;
fi
echo -e "perl : \t ${txtgrn}OK${txtrst}"
## iconv
test=$(whereis iconv)
if [ "$test" == "iconv:" ]
then
echo -e "${txtred}ERROR${txtrst} iconv not found\n You have to install iconv\n sudo apt-cache search iconv"
exit 1;
fi
echo -e "iconv : \t ${txtgrn}OK${txtrst}"
## SRI LM
if [ -z "$SRILM" ] || [ -z "$MACHINE_TYPE" ]
then
echo -e "${txtred}ERROR${txtrst} SRILM toolkit variables are not defined (SRILM and MACHINE_TYPE)\n You have to install SRILM Toolkit\n"
exit 1;
fi
export SRILM_BIN=$SRILM/bin/$MACHINE_TYPE
echo -e "SRILM toolkit : \t ${txtgrn}OK${txtrst}"
### Speeral Configuration ###
echo -e "\n\t${txtblu}Speeral configuration${txtrst}\n"
read -e -p "Download Speeral bin and data ? (y/n) " speeral
if [ "$speeral" == "y" ]
then
echo -e "Download Speeral bin and data :"
scp -r ${username}@nyx:/local/OTMEDIA/OTMEDIA_DATA/Speeral $OTMEDIA_HOME/tools/
fi
echo -e "\n\t${txtblu}Generating Speeral configuration files :${txtrst}\n"
cat $PWD/tools/Speeral/CFG/SpeeralFirstPass.xml.tmp | sed -e "s|[^<]*|$PWD/tools/Speeral/LEX/LEXIQUE_V6.speer|g" \
| sed -e "s|[^<]*|$PWD/tools/Speeral/LM/ML_4gOTMEDIA_LEXIQUE_V6|g" \
| sed -e "s|[^<]*|$PWD/tools/Speeral/LEX/LEXIQUE_V6.speer.bin|g" \
> $PWD/tools/Speeral/CFG/SpeeralFirstPass.xml
echo $PWD/tools/Speeral/CFG/SpeeralFirstPass.xml
cat $PWD/tools/Speeral/CFG/SpeeralSecondPass.xml.tmp | sed -e "s|[^<]*|$PWD/tools/Speeral/LEX/LEXIQUE_V6.speer|g" \
| sed -e "s|[^<]*|$PWD/tools/Speeral/LM/ML_4gOTMEDIA_LEXIQUE_V6|g" \
| sed -e "s|[^<]*|$PWD/tools/Speeral/LEX/LEXIQUE_V6.speer.bin|g" \
> $PWD/tools/Speeral/CFG/SpeeralSecondPass.xml
echo $PWD/tools/Speeral/CFG/SpeeralSecondPass.xml
cat $PWD/tools/Speeral/CFG/SpeeralThirdPass.xml.tmp | sed -e "s|[^<]*|$PWD/tools/Speeral/LEX/LEXIQUE_V6.speer|g" \
| sed -e "s|[^<]*|$PWD/tools/Speeral/LM/ML_4gOTMEDIA_LEXIQUE_V6|g" \
| sed -e "s|[^<]*|$PWD/tools/Speeral/LEX/LEXIQUE_V6.speer.bin|g" \
> $PWD/tools/Speeral/CFG/SpeeralThirdPass.xml
echo $PWD/tools/Speeral/CFG/SpeeralThirdPass.xml
if [ $EXPLOITCONFPASS -eq 1 ]
then
### LIA ltbox ###
echo -e "\t${txtblu}Install lia_ltbox${txtrst}\n"
export LIA_TAGG_LANG="french"
export LIA_TAGG="$OTMEDIA_HOME/tools/lia_ltbox/lia_tagg/"
export LIA_PHON_REP="$OTMEDIA_HOME/tools/lia_ltbox/lia_phon/"
export LIA_BIGLEX="$OTMEDIA_HOME/tools/lia_ltbox/lia_biglex/"
### config lia_phon
cd $LIA_PHON_REP
make clean > /dev/null
make clean_ressource > /deV/null
make all > /dev/null
make ressource > /dev/null
### config lia_tagg
cd $LIA_TAGG
make clean > /dev/null
make clean_ressource > /dev/null
make all > /dev/null
make ressource.french > /dev/null
### config lia_biglex
cd $LIA_BIGLEX
make -f makefile.biglex clean > /dev/null
make -f makefile.biglex > /dev/null
cd $OTMEDIA_HOME
if [ $SCORING -eq 1 ]
then
echo -e "\t${txtblu}Install CRF++${txtrst}\n"
tar -xvzf "$OTMEDIA_HOME/tools/CRF++-0.58.tar.gz" -C "$OTMEDIA_HOME/tools/"
cd $OTMEDIA_HOME/tools/CRF++-0.58
./configure --prefix="$OTMEDIA_HOME/tools/install"
make
make install
echo -e "\t${txtblu}Install lia_ne${txtrst}\n"
export PATH=$PATH:$OTMEDIA_HOME/tools/install/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTMEDIA_HOME/tools/install/lib
export LIA_NE=$OTMEDIA_HOME/tools/lia_ltbox/lia_ne_v2.2
cd $LIA_NE
mkdir $LIA_NE/bin 2> /dev/null
make clean > /dev/null
make all > /dev/null
cd $OTMEDIA_HOME
fi
### SOLR DB ###
# Tomcat fisrtly
test=$(dpkg -l | grep "^ii" | grep tomcat)
if [ "$test" == "" ]
then
echo -e "${txtred}ERROR${txtrst} TOMCAT seems to not be installed)\n You have to install TOMCAT\n"
#exit 1;
echo -e "\nTOMCAT : \t ${txtred}NOT OK${txtrst}\n"
else
echo -e "\nTOMCAT : \t ${txtgrn}OK${txtrst}\n"
fi
# SOLR secondly
echo -e "\t${txtblu}Install SOLR DB${txtrst}\n"
echo -e "You will need 300 Go of free space to install SOLR DB"
read -p "Continue ? (y/n) " solr
if [ "$solr" == "y" ]
then
echo -e "Download SOLR DB\r"
mkdir -p $OTMEDIA_HOME/tools/SOLR 2> /dev/null
scp -r ${username}@nyx:/local/OTMEDIA/OTMEDIA_DATA/SOLR/otmedia-2013-04.tar.gz $OTMEDIA_HOME/tools/SOLR
echo -e "Unzip SOLR DB\r"
tar -xvzf "$OTMEDIA_HOME/tools/SOLR/otmedia-2013-04.tar.gz" -C "$OTMEDIA_HOME/tools/SOLR/"
else
echo "Skipping SOLR install"
fi
read -e -p "Configure SOLR DB server ? (y/n) " solr
if [ "$solr" == "y" ]
then
read -p "Enter SOLR server IP :" ip
if [ "${ip}" == "" ];then ip="localhost";fi
echo "machine = \"${ip}\"" > $OTMEDIA_HOME/tools/scripts/solrinfo.py
read -p "Enter SOLR server port :" port
if [ "${port}" == "" ]; then port="8080";fi
echo -e "\n\tSOLR server IP ${ip}"
echo -e "\tSOLR server port ${port}"
echo "port = \"${port}\"" >> $OTMEDIA_HOME/tools/scripts/solrinfo.py
else
echo "Skipping SOLR DB Configuration"
fi
echo -e "\nSee SOLR.INSTALL file for more information\n"
fi
### Set Variables in bashrc ###
cat ~/.bashrc | grep -v "OTMEDIA_HOME" | grep -v "SRILM_BIN" | grep -v "main_tools" | grep -v "/tools/install/" > ~/.bashrc.org
#cat ~/.bashrc | grep -v "OTMEDIA_HOME" | grep -v "SRILM_BIN" | grep -v "LIA_TAGG" | grep -v "LIA_PHON" | grep -v "LIA_BIGLEX" > ~/.bashrc.org
cp ~/.bashrc.org ~/.bashrc
export OTMEDIA_HOME=$PWD
echo "export OTMEDIA_HOME=$PWD" >> ~/.bashrc
echo "export PATH=\$PATH:$PWD/main_tools" >> ~/.bashrc
echo "export SRILM_BIN=$SRILM/bin/$MACHINE_TYPE" >> ~/.bashrc
#echo "export LIA_TAGG_LANG=french" >> ~/.bashrc
#echo "export LIA_TAGG=$OTMEDIA_HOME/tools/lia_ltbox/lia_tagg/" >> ~/.bashrc
#echo "export LIA_PHON_REP=$OTMEDIA_HOME/tools/lia_ltbox/lia_phon/" >> ~/.bashrc
#echo "export LIA_BIGLEX=$OTMEDIA_HOME/tools/lia_ltbox/lia_biglex/" >> ~/.bashrc
#echo "export LIA_NE=$OTMEDIA_HOME/tools/lia_ltbox/lia_ne_v2.2" >> ~/.bashrc
if [ $SCORING -eq 1 ]
then
echo "export PATH=\$PATH:$OTMEDIA_HOME/tools/install/bin" >> ~/.bashrc
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:$OTMEDIA_HOME/tools/install/lib" >> ~/.bashrc
fi
# set global configuration file
echo "OTMEDIA_HOME=\"$PWD\"" > $OTMEDIA_HOME/cfg/main_cfg.cfg
echo "ARCH=\"$ARCH\"" >> $OTMEDIA_HOME/cfg/main_cfg.cfg
echo "VERBOSE=0" >> $OTMEDIA_HOME/cfg/main_cfg.cfg
echo "DEBUG=0" >> $OTMEDIA_HOME/cfg/main_cfg.cfg
echo "CHECK=0" >> $OTMEDIA_HOME/cfg/main_cfg.cfg
echo "RERUN=0" >> $OTMEDIA_HOME/cfg/main_cfg.cfg
echo -e "\n\t${txtgrn}### Install completed ###${txtrst}\n"
echo -e "do : source ~/.bashrc"
echo -e "or set variable :\n"
echo "export OTMEDIA_HOME=$PWD"
echo "export PATH=\$PATH:$OTMEDIA_HOME/main_tools"
echo "export SRILM_BIN=$SRILM/bin/$MACHINE_TYPE"
if [ $SCORING -eq 1 ]
then
echo "export PATH=\$PATH:$OTMEDIA_HOME/tools/install/bin"
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:$OTMEDIA_HOME/tools/install/lib"
fi
echo "${txtwht} \\\\ "
echo " ,-~~~-\\\\_"
echo " ( .\ "
echo " @\___(__--'${txtrst}"
echo "${txtgrn}Yes${txtylw}I${txtred}Rastafari${txtrst}"