Des menus dans votre terminal - retour accueil
git clone git://bebou.netlib.re/zenu
Log | Files | Refs | README |
commit 75b2322f526059bc9ea847ec116d82a1d9489be9 parent 7528b2756b37b4cb1205d8be81358d07f6b92890 Auteurice: Arthur Pons <arthur.pons@unistra.fr> Date: Wed, 25 Dec 2024 20:13:16 +0100 Portabilité sur openbsd Deux points : 1. zsh n'est pas installé au même endroit sur openbsd et sur debian Pour avoir un shebang portable on utilise /usr/bin/env zsh 2. le sed de bsd est + posix et ne comprendpas les séquences d'échappements type \n, \t, \x1b. On remplace tout ça par les caractères littéraux (ctrl+v puis la touche) Diffstat:
M | bin/build | | | 5 | ++--- |
M | zenu.zsh | | | 8 | ++++---- |
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/bin/build b/bin/build @@ -1,5 +1,4 @@ -#!/bin/zsh -ue -#!/bin/sh -ue +#! /usr/bin/env zsh usage() <<-% cat usage: @@ -17,7 +16,7 @@ shift case "$cmd" in (-h|help|--help) usage -;; (face | -f) sed -En '/^##/q;s/_(.)/\x1b[7m\1\x1b[m/g;s/^/ /p' "$@" +;; (face | -f) sed -En '/^##/q;s/_(.)/[7m\1[m/g;s/^/ /p' "$@" # Avoid Quoting hell (QH) with aliases: # with QH ;; (script | -s) <<-% cat diff --git a/zenu.zsh b/zenu.zsh @@ -2,14 +2,14 @@ zenu_store=$( mktemp -d /tmp/zenu.$$.XXXXXX ) trap "rm -rf $zenu_store" EXIT zenu.up() { - repeat ${1:-1} printf "\x1b2K\e[A" + repeat ${1:-1} printf "2K\e[A" printf "\e[2K" } zenu.emph() { - sed -r ' + sed -E ' /^'"$zenu_key"'(.*)$/ { - s//\x1b[7m\1\x1b[m/ + s//[7m\1[m/ n } s/^.// @@ -65,7 +65,7 @@ zenu.loop() { ;; (*) local c=${zenu_base?path of this zenu}/$zenu_stack[-1] set $zenu_store/{1..$[$#zenu_stack-1]} $c.face - paste "$@" | sed 's/\t/│/g' + paste "$@" | sed 's/ /│/g' echo test -s $zenu_store/err && { echo -n $'\e[31;47m'