#!/bin/sh

PERL=$(which perl)

FOLD_DIR=/opt/fah/folding
HTML_DIR=/var/www/html
HTML_DIR_MINITEAMS_CFG=$HTML_DIR/miniteams.cfg
MEMORY="memory"

USE_DK_PROOF=1
USE_TIME=$1

if [ ! -z "$USE_TIME" ]; then
  PERL="time $PERL"
fi

FAH_DB="fah.db"

# Effacement des vieux fichiers de sauvegarde
cd $FOLD_DIR/vieux
\rm -f *.html
cd $FOLD_DIR/DATA
\rm -f team_*.txt

# Dossier folding
cd $FOLD_DIR

# Creation du RAMDisk
mkdir -p /tmp/$MEMORY
sudo mount -t tmpfs -o size=1024M tmpfs /tmp/$MEMORY
sleep 1

# Copie BDD dans RAMDisk
\cp -f saved_$FAH_DB /tmp/$MEMORY/$FAH_DB

# Mise a jour
$PERL recherche_information.pl
RET=$?
#echo "RET=[${RET}]"

#exit 0

erreur=0

if [ "${RET}" = "0" ]; then
  $PERL insert_score.pl
  $PERL score2.pl
  $PERL score3.pl
  $PERL score4.pl
  $PERL insert_meilleur.pl
  $PERL meilleur.pl
  $PERL Alliance.pl
  $PERL actives_sommeils.pl
  $PERL graphique1.pl
  $PERL graphique2.pl
  $PERL graphique3.pl
  $PERL graphique4.pl
  $PERL graphique5.pl
  $PERL message.pl
elif [ "${RET}" = "1" ]; then
  echo "Une erreur est apparue ==> seuls users et team51 !"
  $PERL insert_meilleur.pl
  $PERL meilleur.pl
  $PERL Alliance.pl
  $PERL actives_sommeils.pl
  $PERL graphique2.pl
  $PERL graphique3.pl
  $PERL graphique5.pl
  $PERL message.pl
elif [ "${RET}" = "2" ]; then
  echo "Une erreur est apparue ==> seuls teams et team51 !"
  $PERL insert_score.pl
  $PERL score2.pl
  $PERL score3.pl
  $PERL score4.pl
  $PERL Alliance.pl
  $PERL actives_sommeils.pl
  $PERL graphique1.pl
  $PERL graphique2.pl
  $PERL graphique3.pl
  $PERL graphique4.pl
  $PERL graphique5.pl
  $PERL message.pl
elif [ "${RET}" = "3" ]; then
  echo "Une erreur est apparue ==> seule team51 !"
  $PERL Alliance.pl
  $PERL actives_sommeils.pl
  $PERL graphique2.pl
  $PERL graphique3.pl
  $PERL graphique5.pl
  $PERL message.pl
  erreur=1
elif [ "${RET}" = "4" ]; then
  echo "Une erreur est apparue ==> seuls teams et users !"
  $PERL insert_score.pl
  $PERL score2.pl
  $PERL score3.pl
  $PERL score4.pl
  $PERL insert_meilleur.pl
  $PERL meilleur.pl
  erreur=1
elif [ "${RET}" = "5" ]; then
  echo "Une erreur est apparue ==> seuls teams !"
  $PERL insert_score.pl
  $PERL score2.pl
  $PERL score3.pl
  $PERL score4.pl
  erreur=1
elif [ "${RET}" = "6" ]; then
  echo "Une erreur est apparue ==> seuls users !"
  $PERL insert_meilleur.pl
  $PERL meilleur.pl
  erreur=1
else
  echo "Une erreur est apparue !"
  erreur=1
fi

# Creation DK_proof
[[ "$erreur" == "0" && "$USE_DK_PROOF" == "1" ]] && ./go_DK_proof.sh || echo "Pas de creation de DK_proof !"

# Purge de la base de donnees
cd $FOLD_DIR
[[ "$erreur" == "0" ]] && $PERL purge.pl

# Envoi des fichiers de configuration des teams
[ ! -d "$HTML_DIR_MINITEAMS_CFG" ] && mkdir -p $HTML_DIR_MINITEAMS_CFG
\cp -f mini*.team $HTML_DIR_MINITEAMS_CFG/.

# Creation de la couleur journaliere de la favicon
[[ "$erreur" == "0" ]] && $PERL favicon.pl

# Copie de la BDD depuis RAMDisk
\cp -f /tmp/$MEMORY/$FAH_DB ./saved_$FAH_DB
sleep 1

# Destruction du RAMDisk
sudo umount /tmp/$MEMORY
sleep 1
rmdir /tmp/$MEMORY

# Sauvegarde nouvelle mise a jour
[[ "$erreur" == "0" ]] && ./go_BackupMaison.sh || echo "Pas de creation de Backup !"

echo "Fin du traitement pour aujourd'hui !"

