#!/usr/bin/tclsh proc reset_watchdog {} { catch {after cancel $::watchdog_after} set ::watchdog_after [after 60000 {exit 0}] } proc forward_line {from to} { set code [catch { reset_watchdog if {[eof $from]} { $to quit Bye! close $from return } set rv [gets $from line] if {$rv > 0} { $to privmsg $::config(-destination) $line } } rv] catch { if {$code && $::env(DEBUG)} { puts stderr $::errorInfo } } } set code [catch { reset_watchdog set config(-destination) {#Test} set config(-source) {Test} set config(-serverHost) localhost set config(-serverPort) 6667 set config(-join) 1 array set config $argv package require irc # ::irc::config logger 1 catch { if {$::env(DEBUG)} { ::irc::config debug 1 } } set i [::irc::connection] $i registerevent EOF {set ::exit 1} $i connect $config(-serverHost) $config(-serverPort) $i nick $config(-source) $i user $config(-source) localhost localhost {send-irc bot} $i registerevent 251 { set ::ready 1 } vwait ready if {$config(-join)} { $i join $config(-destination) } fconfigure stdin -blocking 0 -translation binary -buffering line fileevent stdin readable [list forward_line stdin $i] vwait exit exit 0 } rv] catch { if {$code && $::env(DEBUG)} { puts stderr $::errorInfo } }