diff options
| author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-01-30 06:30:07 +0100 |
|---|---|---|
| committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-01-30 06:30:07 +0100 |
| commit | 8e658df4fe85592fccc32c24283dfa17de5969e2 (patch) | |
| tree | faa672594f6ba41052e0aec449d75a90533f13dc /rc | |
| parent | 3787f721c1efe19c0502dc7e429459804100757d (diff) | |
| parent | e322e84f5f2c046dffa3613aa54be574c3a80fdd (diff) | |
| download | plan9front-8e658df4fe85592fccc32c24283dfa17de5969e2.tar.xz | |
merge
Diffstat (limited to 'rc')
| -rwxr-xr-x | rc/bin/ircrc | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/rc/bin/ircrc b/rc/bin/ircrc index 9be2bc4e7..0a4a29196 100755 --- a/rc/bin/ircrc +++ b/rc/bin/ircrc @@ -38,9 +38,18 @@ fn work { title echo JOIN $target > $netdir/data } - while (cmd=`{read}) { - msg=() - out=() + if(~ $target *,*) + target = `{echo $target | awk -F',' '{print $NF}'} + while () { + cmd=`{read} + if(! ~ `{cat $netdir/status} *Established*) + exit + if(~ $#cmd 0) { + echo QUIT : Leaving... > $netdir/data + exit + } + msg=() + out=() switch ($cmd(1)) { case /! eval `{mshift $cmd} | while(rc=`{read})echo 'PRIVMSG '^$target^' :' $rc | tee $netdir/data @@ -61,6 +70,8 @@ fn work { target=$cmd(2) title msg = (JOIN `{mshift $cmd}) + if(~ $target *,*) + target = `{echo $target | awk -F',' '{print $NF}'} } case /l msg = (LIST `{mshift $cmd}) @@ -91,6 +102,8 @@ fn work { case /x echo QUIT : Leaving... > $netdir/data exit + case /* + echo unknown command case * msg = 'PRIVMSG '^$target^' :'^$"cmd out = '('^$target^') ⇐ '^$"cmd @@ -148,19 +161,22 @@ fn privmsg { s = s ":" $i; printf("%s\n", s); }' - } fn pretty { while (~ `{cat $netdir/status} *Established*) { - line=`{read} + if(! line=`{read}) { + echo Connection lost + date + exit + } switch ($line) { + case *PRIVMSG* + line = `{echo -n $line | privmsg} case *JOIN* *QUIT* *PART* *NICK* line = `{echo -n $line | misc} case *NOTICE* line = `{echo -n $line | notice} - case *PRIVMSG* - line = `{echo -n $line | privmsg} case *PING* echo -n $line | sed 's/PING/PONG/' > $netdir/data line = () @@ -235,6 +251,6 @@ if(~ $#userpass 2 && ~ $nick $user) { netdir=`{basename -d $clonefile} ^ / ^ `{cat /fd/4} echo connect $ip!$port >$netdir/ctl || exit 'cannot connect' echo connected to tcp!$ip!$port on $netdir - cat $netdir/data | tr -d '
' | pretty & + cat $netdir/data | tr -d '\x2\xd\x1f' | pretty & work } |
