ref: 1ca868f1913c0dc61beef0d27490253f095ad495
parent: f6dbc2ae6e153c5608b6f9d893238d71ae521935
author: Sigrid Solveig Haflínudóttir <ftrvxmtrx@gmail.com>
date: Fri Oct 8 13:47:29 EDT 2021
add gridup
--- a/README.md
+++ b/README.md
@@ -12,6 +12,7 @@
* `xml.[ch]` XML parser, works as a streaming parser as well
* `clear` removes all program output from the terminal, leaving only commands used
+* `gridup` connects to 9p.zone, mounts stuff from its registry and starts chat windows
* `helpmeport` generates files needed to port a Unix library or a binary
* `watch` watch-like tool, imagine
* `st-xx-lha-convert` extract `*.lha` archives and convert samples to WAV, on UNIX
--- /dev/null
+++ b/gridup
@@ -1,0 +1,46 @@
+#!/bin/rc
+
+srv tcp!registry.9p.zone!6675 registry /n/registry
+
+fn clean {
+ echo $1 | sed 's/.*!([^!]+)!.*/\1/'
+}
+
+for(s in /n/registry/tcp*){
+ s=`{basename $s}
+ srv $s `{clean $s} /n/^`{clean $s}
+}
+
+>/tmp/chatcat cat <<'...'
+#!/bin/rc
+chan=$1
+label $chan
+echo JOIN $nick to chat >>/n/chat.9p.zone/$chan
+cd /tmp/chatnicks/$chan && rm -f *
+{
+ mkdir -p /tmp/chatnicks/$chan && \
+ cd /tmp/chatnicks/$chan && \
+ rm -f *
+ awk '/^[-a-zA-Z_0-9]+ [→•|] / { system("touch " $1 ":") }' </n/chat.9p.zone/$chan
+} &
+cat /n/chat.9p.zone/$chan &
+while() cat | sed '1s/^/'$nick' → /' >>/n/chat.9p.zone/$chan
+...
+chmod +x /tmp/chatcat
+
+>/tmp/gridrio cat <<'...'
+#!/bin/rc
+for(c in chat commits noise)
+ window -scroll -cd /tmp/chatnicks/$c /tmp/chatcat $c
+...
+chmod +x /tmp/gridrio
+
+echo ' Type a (multi-line) message ending with a newline'
+echo ' and press control-d (EOT) to send.'
+echo
+echo -n 'Please enter nickname to use, finish with ENTER: '
+nick=`{read}
+if(~ $#nick 0)
+ nick=$user
+
+exec rio -s -i /tmp/gridrio