richterm

"terminal emulator" with support for text fonts and images for plan9
git clone git://nsmpr.xyz/richterm.git
Log | Files | Refs | README

commit b71d660704842eec8b6caad5e5f7bc99fec8728f
parent 3a03c7717616d476a52e3d97dc242b1c283ae444
Author: Pavel Renev <an2qzavok@gmail.com>
Date:   Sat,  6 Nov 2021 21:53:03 +0000

move Handler rc script to extra/

Diffstat:
Aextra/Handler | 109+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 109 insertions(+), 0 deletions(-)

diff --git a/extra/Handler b/extra/Handler @@ -0,0 +1,109 @@ +#!/bin/rc + +rfork + +rroot=/mnt/richterm + +history=`{pwd} +forward=() + +fn clear { + echo clear > $rroot/ctl +} + +fn _exit { + clear + echo -n > $rroot/menu + exit +} + +fn ldir { + cd $1 + history = (`{pwd} $history) + forward = () + clear + Dir +} + +fn lmarkdown { + fname=`{basename $1} + cd `{basename -d $1} + history = (`{pwd}^/$fname $history) + forward = () + clear + Markdown $fname +} + +fn lgopher { + history = ($1 $history) + forward = () + clear + switch ($1) { + case *.md; Gopher $1 | Markdown + case *; Gopher $1 + } +} + +fn tryfile { + type=`{file -m $1} + switch ($type) { + case 'text/plain'; + lmarkdown $1 + case *; + plumb $1 + } +} + +fn menu { + switch ($1) { + case 'Back'; + if (test $#history '!=' 1) { + newforward = ($history(1) $forward) + link = $history(2) + history = $history(3-) + link $link + forward = $newforward + } + case 'Exit'; _exit + } +} + +fn link { + switch($1) { + case http://*; plumb $1 + case gopher://*; lgopher $1 + case *.md; lmarkdown $1 + case *.html + md=`{echo $1|sed 's/\.html/\.md/'} + if (test -r $md) lmarkdown $md + if not echo 'can''t open file' $1 + case * + if (test -d $1) ldir $1 + if not tryfile $1 + } +} + +cat > $rroot/menu <<EOF +---- +Back +Exit +EOF + +clear +Dir + +event='' + +if (test -n $"1) { + link $1 +} + +while ( { event=`{read $rroot/ctl} } ) { + if (test -z $"event) _exit + type=$event(1) + action=$event(2) + switch($type) { + case 'menu'; menu $action + case 'link'; link $action + } +}