From 16438909e5cef824a68211338db8faa78728c030 Mon Sep 17 00:00:00 2001 From: glenda Date: Wed, 2 Jun 2021 16:42:15 +0000 Subject: [PATCH] added me to chat --- chat | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100755 chat diff --git a/chat b/chat new file mode 100755 index 0000000..82cde4d --- /dev/null +++ b/chat @@ -0,0 +1,112 @@ +#!/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 +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 /me + if(! ~ $talk(2-) ''){ + line=`{echo $name $talk(2-)} + echo $line >>/n/chat/$channel + } + 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 + } + } +}