#Desauto_V3.0_brsantos_02/06/15
#para o cancelamento: sudo shutdown -c
menu="=======>>Desligamento Automático<<========
|==>Modos de desligamento                |
|Temporizado  >>T<< [HH:MM; H:M ou MMMM] |
|Agendado     >>A<< [H{0..24}  M{0..60}] |
|Imediato     >>I<<                      |
=========================================="
menuset1="|==>Modo Selecionado (Temporizado)       |"
menuset2="|==>Modo Selecionado (Agendado)          |"
echo "$menu"
read modo

if [ $modo = 'I' -o $modo = 'i' ]
    then sudo shutdown  -v -h -P +0
fi

if [ $modo = 'T' -o $modo = 't' ]
    then
        clear;echo "$menu"
        echo "|==>Setup Temporizado                    |\n|Quantas horas?                          |" 
        read H
        clear;echo "$menu"
        echo "|==>Setup Temporizado                    |\n|Quantos minutos?                        |"
        read M
        clear;echo "$menu\n$menuset1\n|Iniciado   "$(date +%H:%M:%S)"||=======Timer=======|"
    elif [ $modo = 'A' -o $modo = 'a' ]
        then
        clear;echo "$menu"
        echo "|==>Setup Agendado                       |\n|Para que hora?                          |" 
        read horaAG
        clear;echo "$menu"
        echo "|==>Setup Agendado                       |\n|Para que minuto?                        |"
        read minAG
        clear;echo "$menu\n$menuset2\n|Iniciado   "$(date +%H:%M:%S)"||=======Timer=======|"
        horaA=$(date +%H)
        minA=$(date +%M)
        
        if [ $(($horaAG-$horaA)) -lt 0 ]
            then
                H=$(($horaAG+24-$horaA))
            else
                H=$(($horaAG-$horaA))
        fi
        
        if [ $(($minAG-$minA)) -lt 0 ]
            then
                M=$(($minAG+60-$minA))
                H=$(($H-1))
            else
                M=$(($minAG-$minA))
        fi
    
    else clear;echo "Digite o modo corretamente: T ou t; A ou a; I ou i"
    exit
fi

horaA=$(date +%H)
minA=$(date +%M)
seg=$(date +%S)
minF=$M
horaF=$H

if [ $M -gt 60 ]
    then 
        while [ $minF -gt 60 ]
            do
                minF=$(($minF-60))
                horaF=$(($horaF+1))
        done
fi
            
if [ $horaA -lt 10 -a $horaA -gt 0 ]
    then
        horaP=$(($H+${horaA#*0}))
    else
        horaP=$(($H+$horaA))
fi

if [ $minA -lt 10 -a $minA -gt 0 ]
    then
        minP=$(($M+${minA#*0}))
    else
        minP=$(($M+$minA))
fi
            
while [ $minP -ge 60 ]
    do
        minP=$(($minP-60))
        horaP=$(($horaP+1))
done
          
min=$minP
hora=$horaP

if [ $hora -ge 24 ]
    then
        hora=$(($hora-24))
fi
             
if [ $min -lt 10 -o $hora -lt 10 ]
    then
        if [ $min -lt 10 -a $hora -lt 10 ]
            then echo "|Hora_Final 0"$hora":0"$min":"$seg"||     "$horaF"H "$minF"M <=="
            elif [ $hora -lt 10 ]
                then echo "|Hora_Final 0"$hora":"$min":"$seg"||     "$horaF"H "$minF"M <=="
            else echo "|Hora_Final "$hora":0"$min":"$seg"||     "$horaF"H "$minF"M <=="
        fi
    else echo "|Hora_Final "$hora":"$min":"$seg"||     "$horaF"H "$minF"M <=="
fi

Thora=$horaF
Tmin=$minF
Tseg=0
segC=$seg

while [ $Thora$Tmin$Tseg -ne 000 ]
    do
        segA=$(date +%S)
        NsegA=$(date +%N)
                    
        if [ $segC -ne $segA ]
            then
                Tseg=$(($Tseg-1))
                segC=$segA
        fi

        if [ $Tseg -lt 0 ]
            then
                Tseg=59
                Tmin=$(($Tmin-1))
        fi
                    
        if [ $Tmin -lt 0 ]
            then
                Tmin=59
                Thora=$(($Thora-1))
        fi  
echo -n "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b|Hora_Atual "$(date +%H:%M:%S)"|| ==> $Thora""H"" $Tmin""M"" $Tseg""S    "
done
Tseg=0
sudo shutdown -v -h -P +1
clear
exit     

