#!/bin/bash
# Allo-GG
# Routine de verification de l'etat des services

echo "********************"
date
echo

gpio -g write 18 1

# LOG2RAM
if mount | grep -q 'log2ram on /var/log type tmpfs'
then
  echo "[✅ OK] Log2Ram"
else
  echo "[❌ ERROR] Log2Ram"
  gpio -g write 18 1
  exit
fi

# APACHE
if service apache2 status | grep -q 'running'
then
  echo "[✅ OK] Apache"
else
  echo "[❌ ERROR] Apache"
  gpio -g write 18 1
  exit
fi

# CRON
if service cron status | grep -q 'running'
then
  echo "[✅ OK] Cron"
else
  echo "[❌ ERROR] Cron"
  gpio -g write 18 1
  exit
fi


# WIRINGPI
if gpio -v | head -n 1 | grep -q 'gpio version: [0-9]'
then
  echo "[✅ OK] WiringPi"
else
  echo "[❌ ERROR] WiringPi"
  gpio -g write 18 1
  exit
fi


# INTERNET

# tester 5 ping
if ping -c5 8.8.8.8 | grep -q '0% packet loss'
# Si la reponse est 0 paquets perdu, alors OK
then
  echo "[✅ OK] Internet"
# Mais sinon, il y a un probleme
else
  # Tentative de relancer le wifi ...
  sleep 2
  echo
  echo "[❌ ERROR] Probleme sur le Wifi ? Tentative de relancer la connexion en cours ..."
  ifdown --force wlan0
  sleep 2
  ifup wlan0
  sleep 2

  # ... puis refaire un test, en testant 10 ping cette fois
  if ping -c10 8.8.8.8 | grep -q '0% packet loss'
  # Si la reponse est 0 paquets perdu, alors finalement tout va bien
  then
  echo "[✅ OK] Internet"
  # Mais si le probleme est toujours present, alors on alerte :
  else
  echo "[❌ ERROR] Internet"
  gpio -g write 18 1
  exit
  fi
fi

# Tout va bien ^_^ Allumage de la LED d'etat.
gpio -g write 18 0
echo
echo "[✅ OK] Tout va bien 👌"
echo "********************"
echo
exit
