X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=rc%2Fbin%2Fircrc;h=4d65dddf7cb3107880e4e62319a1ce5cc405deda;hb=70c6dab003afbdf48fec6fc6012ccdd3aa277ac2;hp=c746bb636383ec53933df9e725b987b5193c5193;hpb=5ba51bcd0df358b9be8e8114849043c486b71c23;p=plan9front.git diff --git a/rc/bin/ircrc b/rc/bin/ircrc index c746bb636..4d65dddf7 100755 --- a/rc/bin/ircrc +++ b/rc/bin/ircrc @@ -6,10 +6,11 @@ server=irc.freenode.net port=6667 realname='' target='' -clonefile=/net/tcp/clone netdir=() nick=$user pass=() +tls=0 +serverpass=() fn sighup { exit 'hang up' @@ -30,6 +31,8 @@ fn etime { } fn work { + if(~ $#serverpass 1) + echo PASS $serverpass > $netdir/data echo USER $user foo bar :$realname > $netdir/data echo NICK $nick > $netdir/data if (~ $#pass 1) @@ -40,11 +43,9 @@ fn work { } if(~ $target *,*) target = `{echo $target | awk -F',' '{print $NF}'} - while () { - cmd=`{read} - if(! ~ `{cat $netdir/status} *Established*) - exit - if(~ $#cmd 0) { + while (cmd=`{read}) { + s=$status + if(~ $s *eof) { echo QUIT : Leaving... > $netdir/data exit } @@ -164,12 +165,7 @@ fn privmsg { } fn pretty { - while (~ `{cat $netdir/status} *Established*) { - if(! line=`{read}) { - echo Connection lost - date - exit - } + while (line=`{read}) { switch ($line) { case *PRIVMSG* line = `{echo -n $line | privmsg} @@ -189,10 +185,6 @@ fn pretty { exit } -fn getip { - echo $1 ip | ndb/dnsquery | sed 1q | awk '{print $NF}' -} - fn title { if (! ~ $#winid 0) { if (test -f /mnt/acme/$winid/ctl) @@ -210,14 +202,19 @@ while (~ $1 -*) { case -p port=$2 shift + case -P + serverpass=$2 + shift case -r realname=$2 shift case -t target=$2 shift + case -T + tls=1 case -* - echo 'usage: ircrc [-p port] [-r realname] [-t target] [-n nick] [server]' >[1=2] + echo 'usage: ircrc [-p port] [-P server password] [-r realname] [-t target] [-n nick] [-T] [server]' >[1=2] exit 'usage' } shift @@ -234,23 +231,23 @@ if (~ $#* 1) { } } -ip=`{getip $server} -if (~ $#ip 0) { - echo cant translate $server - exit 'unknown host' -} - title userpass=`{auth/userpasswd 'server='^$server^' service=irc user='^$nick >[2]/dev/null} -if(~ $#userpass 2 && ~ $nick $user) { +if(~ $#userpass 2) { nick=$userpass(1) pass=$userpass(2) } -<[4] $clonefile { - 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 '\x2\xd\x1f' | pretty & - work +p='/n/ircrc' +bind '#|' $p +echo connecting to tcp!$server!$port... +if(~ $tls 0){ + aux/trampoline tcp!$server!$port <>$p/data1 >[1=0] & } +if not { + tlsclient tcp!$server!$port <>$p/data1 >[1=0] & +} +netdir=$p +cat $netdir/data | tr -d '\x2\xd\x1f' | pretty & +work +