]> git.lizzy.rs Git - plan9front.git/blobdiff - rc/bin/ircrc
play, file: recognize midi and mus audio
[plan9front.git] / rc / bin / ircrc
index c746bb636383ec53933df9e725b987b5193c5193..4d65dddf7cb3107880e4e62319a1ce5cc405deda 100755 (executable)
@@ -6,10 +6,11 @@ server=irc.freenode.net
 port=6667
 realname='<nil>'
 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
+