Hello!
I would like to know how can I make a tcl in which the bot starts a process at certain times... kinda like a crontab using the eggdrop... (for people with no crontab in their shell).
you can either use "exec bla" (not that bot will be stucked until the process terminates) or "open |bla" to open a file handle to that console (you use puts and gets to interact with whatever you started) but more important is, the bot won't wait till the process is terminated and will continue immidiadly.
You can read more about these in "The Manual" ^-^.
for binding for time you should read TCL-Commands.doc in the BIND section.
#pisg.tcl v0.15 by HM2K - auto stats script for pisg (perl irc statistics generator)
#based on a script by Arganan
set pisgver "0.15"
#Location of pisg execuitable perl script
set pisgexe "/home/nf/pisg/pisg"
#URL of the generated stats
set pisgurl "http://stats.nemesisforce.com/"
#channel that the stats are generated for
set pisgchan "#nemesisforce"
#Users with these flags can operate this function
set pisgflags "nm"
#How often the stats will be updated in minutes, ie: 30 - stats will be updated every 30 minutes
set pisgtime "30"
bind pub $pisgflags !stats pub:pisgcmd
proc pub:pisgcmd {nick host hand chan arg} {
global pisgexe pisgurl pisgchan
append out "PRIVMSG $pisgchan :" ; if {[catch {exec $pisgexe} error]} { append out "$pisgexe an error occured: [string totitle $error]" } else { append out "Stats Updated: $pisgurl" }
puthelp $out
}
proc pisgcmd_timer {} {
global pisgexe pisgurl pisgchan pisgtime
append out "PRIVMSG $pisgchan :" ; if {[catch {exec $pisgexe} error]} { append out "$pisgexe an error occured: [string totitle $error]" } else { append out "Stats Updated: $pisgurl" }
puthelp $out
timer $pisgtime pisgcmd_timer
}
if {![info exists {pisgset}]} {
set pisgset 1
timer 2 pisgcmd_timer
}
putlog "pisg.tcl $pisgver loaded"
How can I change this for another process? (yes, I don't know much about tcl) :\
the pisgurl is only used to announce it to the channel, which is suppsed to point to the html/php which content/source has been just updated by the called pearl script.
depending on what you execute you might have to call bash like "exec /bin/bash -c \"bla\""
PS: don't tell me you get this error:
Tcl error: couldn't duplicate input handle: bad file number