uwatch: ajout de l'option -r
This commit is contained in:
parent
d99718e692
commit
f131e21177
45
uwatch
45
uwatch
|
@ -14,11 +14,16 @@ OPTIONS
|
|||
Afficher l'heure (par défaut)
|
||||
-c, --count
|
||||
Afficher le temps écoulé depuis le lancement de ce script
|
||||
-r, --rcount
|
||||
Afficher un décompte depuis DURATION jusqu'à 0 puis terminer le script.
|
||||
DURATION exprimé en secondes est le premier argument du script et vaut
|
||||
par défaut ${DEFAULT_DURATION} soit $(($DEFAULT_DURATION / 60)) minutes.
|
||||
-u, --units
|
||||
Avec l'option --count, afficher l'unité: sec., min. ou heures
|
||||
-o, --offset NBSEC
|
||||
Avec l'option --count, spécifier un nombre de secondes à partir duquel
|
||||
compter
|
||||
compter. Avec l'option --rcount, le nombre de secondes est soustrait à
|
||||
DURATION.
|
||||
-s, --step NBSECS[=1]
|
||||
Spécifier la période de rafraichissement de l'affichage
|
||||
-a, --prefix PREFIX
|
||||
|
@ -26,12 +31,15 @@ OPTIONS
|
|||
-z, --suffix SUFFIX
|
||||
Spécifier une chaine à afficher après l'heure
|
||||
--cc
|
||||
Equivalent à -c -s 5 -a 'Connecté sur \$MYHOST depuis ' -z '...'
|
||||
Equivalent à -c -s 5 -u -a 'Connecté sur \$MYHOST depuis ' -z '...'
|
||||
Permet de garantir une activité sur une connexion SSH utilisée
|
||||
uniquement pour faire une redirection de port"
|
||||
uniquement pour faire une redirection de port
|
||||
--rc
|
||||
Equivalent à -r -s 1 -u -a 'Attendre ' -z ''"
|
||||
}
|
||||
|
||||
DEFAULT_STEP=1
|
||||
DEFAULT_DURATION=300
|
||||
|
||||
what=time
|
||||
units=
|
||||
|
@ -43,18 +51,31 @@ args=(
|
|||
--help '$exit_with display_help'
|
||||
-t,--time what=time
|
||||
-c,--count what=count
|
||||
-r,--rcount what=rcount
|
||||
-u,--units units=1
|
||||
-o:,--offset: offset=
|
||||
-s:,--step: step=
|
||||
-a:,--prefix: prefix=
|
||||
-z:,--suffix: suffix=
|
||||
--cc '$what=count; units=1; step=5; prefix="Connecté sur $MYHOST depuis "; suffix="..."'
|
||||
--rc '$what=rcount; units=1; step=1; prefix="Attendre "; suffix=""'
|
||||
)
|
||||
parse_args "$@"; set -- "${args[@]}"
|
||||
|
||||
[ -n "$step" ] || step="$DEFAULT_STEP"
|
||||
setx start=date +%s
|
||||
[ -n "$offset" ] && start=$(($start - $offset))
|
||||
|
||||
case "$what" in
|
||||
count)
|
||||
[ -n "$offset" ] && start=$(($start - $offset))
|
||||
;;
|
||||
rcount)
|
||||
duration="${1:-$DEFAULT_DURATION}"
|
||||
[ -n "$offset" ] && duration=$(($duration - $offset))
|
||||
end=$(($start + $duration))
|
||||
TZ= setx until=date -d "@$end" +%H:%M:%S
|
||||
;;
|
||||
esac
|
||||
|
||||
while true; do
|
||||
case "$what" in
|
||||
|
@ -73,6 +94,22 @@ while true; do
|
|||
fi
|
||||
[ ${#msg} -eq 2 ] && msg="${msg#0}"
|
||||
;;
|
||||
rcount)
|
||||
setx now=date +%s
|
||||
if [ $now -ge $end ]; then
|
||||
echo
|
||||
break
|
||||
fi
|
||||
TZ= setx msg=date -d "@$(($end - $now))" +%H:%M:%S
|
||||
msg="${msg#00:}"; msg="${msg#00:}"
|
||||
if [ -n "$units" ]; then
|
||||
if [ ${#msg} -ge 8 ]; then msg="$msg heures"
|
||||
elif [ ${#msg} -eq 5 ]; then msg="$msg min"
|
||||
elif [ ${#msg} -eq 2 ]; then msg="${msg#0} sec"
|
||||
fi
|
||||
fi
|
||||
[ ${#msg} -eq 2 ] && msg="${msg#0}"
|
||||
msg="$msg (jusqu'à $until)"
|
||||
esac
|
||||
echo -n $'\e[1G\e[K'"$prefix$msg$suffix"
|
||||
sleep "$step"
|
||||
|
|
Loading…
Reference in New Issue