Evaluer ses scripts en temps réel (dangereux ⚠️) - retour accueil
git clone git://bebou.netlib.re/liverepl
Log | Files | Refs | README |
commit 2e3faee6511e4630b9e4aed765e5071ca2d49f78 parent 745aa24fd44447c2f2f1251835407133e338dff3 Auterice: Arthur Pons <arthur.pons@unistra.fr> Date: Thu, 29 Aug 2024 12:14:20 +0200 Pas de rafraichissement quand on est la source On rafraichit le résultat toutes les secondes pour que le script pipeline serve à quelque chose (qu'une fenêtre se mette à jour quand les autres en amont l'ont été). Mais y'a pas besoin quand on est la source des données. Donc timeout immense pour ces repl là. Et un peu de factorisation Diffstat:
M | liverepl | | | 26 | +++++++++++++++----------- |
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/liverepl b/liverepl @@ -9,16 +9,6 @@ while getopts "fi:o:c:s:" opt;do esac done -[ -n "$i" ] && tmpf="$i" || tmpf=$(mktemp) -[ -n "$o" ] && tmpres="$o" || tmpres=$(mktemp) -setopt extendedglob -trap "echo -n '\033[?25h' 1>&2" EXIT QUIT KILL SIGKILL SIGINT INT -entry="" -key="" -echo -n "\033[?25l" 1>&2 - -[ "$filter" = "yes" -a "$tmpf" = "-" ] && { tmpf=$(mktemp); cat > $tmpf; } - saveanddisp() { tee $tmpres | head -n$(( $(tput lines) - 2 )) 1>&2 } dispprompt() { @@ -36,6 +26,18 @@ managekey() { esac } +entry="";key="";timeout="1" + +[ -n "$i" ] && tmpf="$i" || tmpf=$(mktemp) +[ -n "$o" ] && tmpres="$o" || tmpres=$(mktemp) + +if [ -n "$filter" ];then + [ -z "$i" -o "$i" = "-" ] && { tmpf=$(mktemp); cat > $tmpf; } +else; timeout="10000"; fi + +# On cache le curseur +echo -n "\033[?25l" 1>&2 + while :;do clear echo -n "\033[2J" 1>&2 @@ -55,9 +57,11 @@ while :;do fi key="" [ -n "$s" ] && echo "$entry" > $s - dispprompt; read -t1 -k1 key; managekey + dispprompt; read -t$timeout -k1 key; managekey done + clear +# On remet le curseur echo -n "\033[?25h" 1>&2 cat $tmpres