ajout de uwatch pour afficher un compte

This commit is contained in:
Jephté Clain 2015-12-23 00:46:04 +04:00
parent 4376fffe22
commit 2d2754bb24
1 changed files with 77 additions and 0 deletions

77
uwatch Executable file
View File

@ -0,0 +1,77 @@
#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
urequire DEFAULTS
function display_help() {
uecho "$scriptname: afficher l'heure
USAGE
$scriptname [options]
OPTIONS
-t, --time
Afficher l'heure (par défaut)
-c, --count
Afficher le temps écoulé depuis le lancement de ce script
-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
-s, --step NBSECS[=1]
Spécifier la période de rafraichissement de l'affichage
-a, --prefix PREFIX
Spécifier une chaine à afficher avant l'heure
-z, --suffix SUFFIX
Spécifier une chaine à afficher après l'heure
--cb
Equivalent à -c -s 30 -a 'Connecté depuis ' -z '...'"
}
DEFAULT_STEP=1
what=time
units=
offset=
step=
prefix=
suffix=
args=(
--help '$exit_with display_help'
-t,--time what=time
-c,--count what=count
-u,--units units=1
-o:,--offset: offset=
-s:,--step: step=
-a:,--prefix: prefix=
-z:,--suffix: suffix=
--cb '$what=count; units=1; step=5; prefix="Connecté depuis "; suffix="..."'
)
parse_args "$@"; set -- "${args[@]}"
[ -n "$step" ] || step="$DEFAULT_STEP"
setx start=date +%s
[ -n "$offset" ] && start=$(($start - $offset))
while true; do
case "$what" in
time)
setx msg=date +%H:%M:%S
;;
count)
setx now=date +%s
TZ= setx msg=date -d "@$(($now - $start))" +%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}"
;;
esac
echo -n $'\e[1G\e[K'"$prefix$msg$suffix"
sleep "$step"
done