#!/bin/sh
#
# script de diagnostic à mettre dans le dossier du servlet
# et à lancer en root (à cause de netstat).

echo="/bin/echo"

if [ -z $(which gawk) ]
then
   echo "gawk introuvable, veuillez l'installer d'abord"
   exit 1
fi

if [ $(id -u) -ne 0 ]
then
   $echo "Vous devez être root pour exécuter l'installeur"
   exit 1
fi

$echo -e "\n*********** MySQL ************"
mysqld=$(ps -C mysqld|sed '1d')
if [ -z "${mysqld}" ]
then
   $echo "Aucun process mysqld ??"
else
   $echo `mysqld --version`
fi

$echo -e "\n************* Java ***********"
ant=`which ant`
if [ -z $ant ]
then
   $echo "ant n'est pas installé."
else
   $echo "ant : "$ant
fi

java=`which java`
if [ -z $java ]
then
   $echo "java n'est pas trouvé."
else
   $echo "java : "`$java -version`
fi

$echo -e "\n********** Tomcat *************"
tomcat=`ps aux|grep tomcat|grep catalina|wc -l`
if [ ${tomcat} -eq 0 ]
then
   $echo "Aucun processus tomcat ??"
else
   pids=$(ps aux|grep tomcat|grep catalina|awk -F " " '{print $2}')
   for pid in $pids
   do
      listener=$(netstat -tupan|gawk -F " " '/LISTEN[ ]+'$pid'\//{
     s=$4
     while (index(s,":")>0) {
        s=substr(s, index(s,":")+1)
     }
     print s}')
   done
   if [ -z "$listener" ]
   then
      echo "Pas de ports pour Tomcat"
   else
      echo "Ports Tomcat : "$listener
   fi
fi

$echo -e "\n************ OSAMES ************"
jars=`ls WEB-INF/lib|grep -E 'osames(-util)?\.jar$'`
if [ $(echo "${jars}"|wc -l) -ne 2 ]
then
   $echo "Tous les jars osames ne sont pas présents : il faut compiler les sources correctement"
else
   $echo "jars osames présents : "$jars
fi

config=`ls osames.cfg 2>/dev/null`
if [ -z "${config}" ]
then
   $echo "Pas de fichier de configuration osames.cfg"
else
   ici=$(pwd -P)
   servlet=$(cat osames.cfg|gawk -F ":" '/osames.absdir/ {gsub(/^[ \t]+/, "", $2); print $2}') # faire un ltrim() sur la valeur
   if [ "$servlet" = "$ici" ]; then
         $echo "Servlet : "$servlet
   else
      # A t-on une configuration avec un lien, comme /usr/share/tomcat5.5 ?
      if [ -d "$servlet" ]
      then
        cd $servlet
        servlet=$(pwd -P)
        if [ "$servlet" = "$ici" ]
        then
           $echo "Servlet : "$servlet
        else
           $echo "Erreur de configuration pour osames.absdir dans osames.cfg"
        fi
      else
        $echo "osames.absdir : "$servlet" : dossier inexistant"
      fi
   fi
fi

$echo
