#! /bin/sh

# -----------------------------------------------------------
#  script de démarrage et d'arrêt pour mldonkey (01/01/2006)
# -----------------------------------------------------------

# -------------------------------------------------------------------------------
#  liste des liens m'ayant aidés à créer se script (par ordre d'importance)
# 
#  http://namurlug.org/forum/read.php?f=1&i=949&t=944
#  http://migpc.net/cgi-bin/wiki.pl?action=browse&diff=2&id=MLDonkeyEnUbuntu
#  http://migpc.net/cgi-bin/wiki.pl?action=browse&id=MLDonkeyEnUbuntu&revision=7
#  http://vdr.bluox.org/vdr-mldonkey.htm
# -------------------------------------------------------------------------------


#    chemin d'accès au programme
PROG=/usr/bin/mlnet
#    utilisateur à utiliser pour lancer mldonkey
USER=mldonkey
#             chemin d'accès aux fichiers 
MLDONKEY_PATH=/home/${USER}/.mldonkey/
#        nom du fichier contenant le PID de mlnet lorsque ce dernier est lancé
PIDFILE="mlnet.pid"
#        fichier d'enregistrement des messages du programme mlnet
LOGFILE="log.txt"
#           fichier d'enregistrement des erreurs du programme mlnet
LOGERRFILE="log-err.txt"


# ----- teste si l'utilisateur existe et quitte sinon (teste si le résultat de la commande cat /etc/passwd | grep $USER est vide)
if [ -z $(cat /etc/passwd | grep $USER) ]; then
 echo "Pour utiliser ce script l'utilisateur $USER doit exister."
 exit 0
fi

# teste si le programme est exécutable et quitte sinon (si le fichier n'existe pas il n'est pas exécutable ;-) )
test -x $PROG || exit 0

# choix de l'action (start stop restart) (démarrer arrêter redémarrer)
case "$1" in
  start)
    # teste si le fichier est un fichier normal
    if [ -f ${MLDONKEY_PATH}${PIDFILE} ]; then
      echo "mldonkey est déjà lancé:"
    else
      echo "Démarrage de mldonkey:"
      # voir le premier lien pour l'explication de la ligne ci dessous
      su - $USER -c nohup $PROG > ${MLDONKEY_PATH}${LOGFILE} 2> ${MLDONKEY_PATH}${LOGERRFILE} & 
    fi
    ;;
  stop)
    # teste si le fichier est un fichier normal
    if [ -f ${MLDONKEY_PATH}${PIDFILE} ]; then
      echo "Arrêt de mldonkey:"
      # tue le processus mlnet à partir de sont PID sauvegardé dans le répertoire
      kill `cat ${MLDONKEY_PATH}${PIDFILE}`
    else
      echo "mldonkey n'est pas lancé:"
    fi
    ;;
  restart)
    echo "Redémarrage de mldonkey:"
    $0 stop
    sleep 1
    $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac

exit 0
