#!/bin/bash

lien='http://nead.univ-angers.fr/celcat/pha/g108.pdf'

if [ ! -e "$HOME/Téléchargements" ]
then
    echo -e "\033[0;31m(!) Le dossier Téléchargements est absent de votre répertoire personnel.
    N'utilisez pas l'option [t].\033[0;0m"
fi

log () {
bad=`cat $rep/barbinch_agenda.log | grep unable | wc -l`
if $bad != ]
then
    echo -e "\033[0;31m(!) Le téléchargement de l'agenda a échoué. Vérifiez votre connexion à internet.\033[0;0m"
    sleep 2
fi
}

fonction () {
rep="$HOME/$1"
if -w "$rep" ]
then
    echo -e "\033[0;32m(?) Si g108.pdf est déjà présent dans ce répertoire, il sera mis à jour.
    Les éventuelles copies g108.pdf.1 g108.pdf.2 ... seront effacées.
    (Pour conserver ces fichiers, vous devez les placer dans un répertoire
    différent de celui choisi pour l'enregistrement de l'emploi du temps.)\033[0;0m
Voulez-vous continuer malgré tout et effacer les doublons ?"
    read -p '[oui/non]' yesno
    case $yesno in
        'oui')
            for in `seq 1 10`;
            do
                rm $rep/g108.pdf.$i >> $rep/barbinch_agenda.log 2>&1
            done
            if -f "$rep/g108.pdf" ]
            then
                echo -e "\033[0;0mMise à jour du fichier g108.pdf dans $1 ...\033[0;0m"
                cd $rep
                wget -nv $lien >> $rep/barbinch_agenda.log 2>&1
                badd=`cat $rep/barbinch_agenda.log | grep unable | wc -l`
                case $badd in
                    '0')
                        mv g108.pdf.1 g108.pdf >> $rep/barbinch_agenda.log 2>&1
                        ;;
                    *)
                        rm g108.pdf.1 >> $rep/barbinch_agenda.log 2>&1
                        echo -e "\033[0;31m(!) Le téléchargement de l'agenda a échoué. Vérifiez votre connexion à internet.\033[0;0m"
                        sleep 2
                        ;;
                esac
            else
                echo -e "\033[0;0mEnregistrement du fichier g108.pdf dans $1 ...\033[0;0m"
                cd $rep
                wget -nv $lien >> $rep/barbinch_agenda.log 2>&1
                log
            fi
            case $2 in
                '-l' '--log')
                    echo 'Fichier .log sauvegardé dans '"$1"' !'
                    echo 'Fichier .log sauvegardé !' >> $rep/barbinch_agenda.log 2>&1
                    ;;
                '' | *)
                    echo non >> $rep/barbinch_agenda.log 2>&1
                    rm  $rep/barbinch_agenda.log
                    ;;
            esac
            ;;
        *)
            echo -e "\033[0;0mArrêt du processus ...\033[0;0m"
            ;;
    esac
else
    echo -e "\033[0;31m(!) Le répertoire $1 n'est pas accessible.\033[0;0m"
fi
}

moteur () {
case $1 in
    '')
        echo " "
        jour=`echo -n ' ' && date +%e`
        nom=`date +%a | cut -c 1-2`
        ligne=`ncal -w | head -n 8 | grep -n $nom | grep $jour | head -n 1 | cut -c 1`
        total=`ncal -w | wc -l`
        let "ligneavant= $ligne - 1"
        let "ligneapres= $total - $ligne"
        ncal -w head -n $ligneavant
        ncal -w head -n grep $nom grep -w --color=yes $jour head -n 1
        ncal -w tail -n $ligneapres grep --color=no [a-z]
        ncal -w tail -n grep --color=yes [a-z,0-9]
        echo -e "
\033[0;32m(?) Pour consulter l'aide, utilisez la commande : a --help\033[0;0m

a [-l \033[0;34m--log --help --version\033[0;0m] [t répertoire]
"
        ;;
    '--help')
        echo -e "\033[0;35mObjectif\033[0;0m
  Télécharge ou met à jour l'emploi du temps Pharmacie 2 - TP4 (09-10 Angers)
  Supprime les doublons de g108.pdf (g108.pdf.1 g108.pdf.2 ...)
\033[0;35mUtilisation\033[0;0m
  a [OPTION] [RÉPERTOIRE]
\033[0;35mRépertoires\033[0;0m
  t              Télécharge l'agenda dans le répertoire des téléchargements
  répertoire     Télécharge l'agenda dans le répertoire indiqué e.g. 'Docs'
                 \033[0;31m(!) Évitez les symboles du type '*' avec cette option.
                     Écrivez le dossier entre apostrophes. e.g. './Docs'\033[0;0m
\033[0;35mOptions (les options \033[0;34m--*\033[0;35m ne sont pas additives)\033[0;0m
  -l,\033[0;34m --log\033[0;0m      Conserve le fichier .log à la fin du téléchargement
  \033[0;34m    --help\033[0;0m     Affiche cette aide
  \033[0;34m    --version\033[0;0m  Affiche la version du script"
        ;;
    '--version')
        echo 'Agenda 1.7.3 (Charles BARBIN)'
        ;;
    '-l' '--log')
        case `echo $2 | cut -c 1` in
            '')
                echo -e "\033[0;31m(!) Veuillez spécifier le nom du répertoire de destination.\033[0;0m"
                ;;
            '-'*)
                echo -e "\033[0;31m(!) Veuillez spécifier un répertoire de destination convenable.\033[0;0m"
                ;;
            *)
                case $2 in
                    '')
                        echo -e "\033[0;31m(!) Veuillez spécifier le nom du répertoire de destination.\033[0;0m"
                        ;;
                    't' | *)
                        if [ ! -e /usr/bin/wget ]
                        then
                            echo -e "\033[0;31m(!) Vous devez installer wget pour utiliser ce script.\033[0;0m"
                            sleep 2
                        else
                            case $2 in
                                't')
                                    fonction 'Téléchargements' $1
                                    ;;
                                *)
                                    fonction $2 $1
                                    ;;
                            esac
                        fi
                        ;;
                esac
                ;;
        esac
        ;;
    't' | *)
        if [ ! -e /usr/bin/wget ]
        then
            echo -e "\033[0;31m(!) Vous devez installer wget pour utiliser ce script.\033[0;0m"
            sleep 2
        else
            case $1 in
                't')
                    fonction 'Téléchargements'
                    ;;
                *)
                    fonction $1
                    ;;
            esac
        fi
        ;;
esac
}

case `echo $1 | cut -c 1` in
    '-')
        case $1 in
            '-l' '--log' '--help' '--version')
                moteur $1 $2
                ;;
            *)
                echo -e "\033[0;31m(!) Veuillez spécifier une option et/ou un répertoire de destination convenable.\033[0;0m"
                ;;
        esac
        ;;
    *)
        moteur $1
        ;;
esac