un timer en shell - retour accueil
git clone git://bebou.netlib.re/timer
Log | Files | Refs |
commit e8597e5e33bd33fdb9fcff7d1142a109047e68d1 parent afcace656c9f472931496650febefe4c3b9272aa Auterice: Arthur Pons <arthur.pons@unistra.fr> Date: Fri, 12 Jan 2024 11:17:15 +0100 Nouvelle fonction pour l'affichage Permet de découpler la génération du texte de la façon dont il doit être présenté. Ajout, en commentaire, d'un affichage plus fancy avec une dépendance à toilet. Masque et démasque le curseur. Diffstat:
M | timer | | | 21 | ++++++++++++++++++--- |
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/timer b/timer @@ -5,7 +5,9 @@ if [ "$1" = "-h" -o "$1" = "--help" ];then timer [secondes] [minutes] [heure] Un minuteur avec un maximum de 23h, 59 minutes et 59 secondes. -Ne pas utiliser pour des cas nécessitant une bonne précision +Ne pas utiliser pour des cas nécessitant une bonne précision, +le minuteur a généralement un décalage de quelques dixièmes de +secondes. En l'absence d'un argument sa valeur par défaut sera 0. @@ -21,11 +23,21 @@ Exemples : exit 0 fi +display(){ + # Si l'on veut rester sur la même ligne, sinon commenter + tput cup 0 0 + for it; do read -r "${it?}"; done + # Première ligne pour une version un peu fancy + # Seconde ligne pour la version de base + #toilet -f ansi "$text " + echo "$text" +} + launch(){ for it; do read -r "${it?}"; done for i in $(seq $total -1 1);do - date --date "01 jan 1970+$i seconds" +'%H:%M:%S' - sleep 0.995 + date --date "01 jan 1970+$i seconds" +'%H:%M:%S' | display text + sleep 0.985 done } @@ -34,5 +46,8 @@ calculate(){ echo $(( ${hours:-0}*3600+${minutes:-0}*60+${seconds:-0} )) } +clear +tput civis +trap "tput cnorm" QUIT EXIT INT echo "$1\n$2\n$3" | calculate seconds minutes hours | launch total