diff options
author | jluehrs2 <jluehrs2@uiuc.edu> | 2007-12-24 07:04:40 -0500 |
---|---|---|
committer | jluehrs2 <jluehrs2@uiuc.edu> | 2007-12-24 07:04:40 -0500 |
commit | 09628cded4b1d5a47b82d0b13eaf1789adb35e91 (patch) | |
tree | 1045ee516a198867777a6f267f9adfdc2c674321 | |
parent | 66d4b88e39b710b836bb40d34abefc5ade0a3462 (diff) | |
download | luairc-master.tar.gz luairc-master.zip |
-rw-r--r-- | test/luabot.lua | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/test/luabot.lua b/test/luabot.lua index 4563c49..456e118 100644 --- a/test/luabot.lua +++ b/test/luabot.lua @@ -1,5 +1,6 @@ #!/usr/bin/env lua +local sig = require 'signal' local irc = require 'irc' irc.DEBUG = true @@ -49,10 +50,17 @@ local commands = { return else setfenv(fn, envs[from]) + sig.signal("ALRM", error) + sig.alarm(5) local result = {pcall(fn)} + sig.alarm(0) + sig.signal("ALRM", "default") local success = table.remove(result, 1) if not success then - irc.say(target, from .. ": Error running code: " .. code .. result[1]:match(".*(:.-)$")) + local err = result[1]:match(".*: (.-)$") + if err == "ALRM" then err = "timed out" end + irc.say(target, from .. ": Error running code: " .. code .. + ": " .. err) else if result[1] == nil then irc.say(target, from .. ": nil") |