liverepl

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:
Mliverepl | 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