ref: 345449d42d68edc414adaf7c9888bb86d0efd2d8
parent: 7a9a85d8860dad2ab86846627c6f0036662bc9b9
author: qwx <[email protected]>
date: Tue Jun 8 21:47:07 EDT 2021
add gridchat script, slightly modified from mycroftiv's own with burnzez filter as an added feature!
--- /dev/null
+++ b/chat
@@ -1,0 +1,108 @@
+#!/bin/rc
+# minimal chat client for hubfs: chat [-n NICK] [-j CHANNEL] [chatsrv]
+# dd -bs `{du -n /n/chat/chat | sed 's/ .*//'} -skip 1 -if /n/chat/chat
+rfork enf
+
+fn helpmessage{
+ echo -------------------------
+ echo '/q to quit | /c to list channels | /h for help message'
+ echo '/n NICK to change nick | /j CHANNEL to change channels'
+ echo -------------------------
+}
+
+fn close{
+ #echo PART $name from $channel >>/n/$chatsrv/$channel
+ @{echo kill>/proc/$catkill/ctl}
+}
+
+fn shutdown{
+ close
+ exit
+}
+
+fn sighup{
+ shutdown
+}
+
+fn sigint{
+ shutdown
+}
+
+channel=chat
+chatsrv=chat
+while (~ $1 -*){
+ switch($1){
+ case -n
+ name = $2
+ shift 2
+ case -j
+ channel = $2
+ shift 2
+ case *
+ echo bad flag $1 '-n NICK -j CHANNEL'
+ shift
+ }
+}
+if(! ~ $1 '')
+ chatsrv=$1
+if(! test -e /n/$chatsrv/chat)
+ mount /srv/$chatsrv /n/$chatsrv
+if(! test -e /n/$chatsrv/chat){
+ echo 'no chat service named $chatsrv found' >[1=2]
+ exit no.chat
+}
+
+echo ' -- hubchat 0.2 --'
+helpmessage
+sleep 2
+while(~ $#name 0){
+ echo 'please enter a chat name:'
+ name=`{read}
+}
+#echo JOIN $name to $channel >>/n/$chatsrv/$channel
+#grep -bv '^BurnZeZ : ' /n/$chatsrv/$channel &
+cat /n/$chatsrv/$channel &
+catkill=$apid
+
+while(talk=`{read}){
+ switch($talk(1)){
+ case /q
+ shutdown
+ case /n
+ if(! ~ $talk(2) ''){
+ echo nick $name ' -> ' $talk(2) >>/n/$chatsrv/$channel
+ name=$talk(2)
+ }
+ if not
+ echo 'you need to provide a nick for /n NICK'
+ case /j
+ if (~ $talk(2) '')
+ echo must specify a channel to join
+ if not if(test -e /n/chat/$talk(2)){
+ close
+ channel=$talk(2)
+ cat /n/chat/$channel &
+ catkill=$apid
+ echo JOIN $name to $channel >>/n/$chatsrv/$channel
+ }
+ if not
+ echo channel does not exist
+ case /h
+ helpmessage
+ echo currently in $channel
+ echo
+ case /c
+ echo Available channels:
+ lc /n/$chatsrv
+ echo -------------------
+ echo currently in $channel
+ echo
+ case *
+# ts=`{date -u}
+# ts=`{echo '('^$ts(4)^')'}
+ if(! ~ $talk ''){
+ line=`{echo $name '→ ' $talk}
+ echo $line >>/n/chat/$channel
+ }
+ }
+}