domo-eval
Version:
Eval plugin for Domo-bot
36 lines (29 loc) • 1.01 kB
text/coffeescript
Sandbox = require 'sandbox'
coffee = require 'coffee-script'
getCode = (res, next) ->
res.code = res.splats[0]
next()
module.exports.init = (domo) ->
domo.route '!eval -c -v *', getCode, (res) ->
try
res.code = coffee.compile(res.code, bare: true).replace('\n', '')
catch e
return res.channel, e.message
res.channel, res.code
domo.route '!eval -c *', getCode, (res) ->
try
res.code = coffee.compile(res.code, bare: true).replace('\n', '')
catch e
return res.channel, e.message
new Sandbox().run res.code, (output) =>
res.channel, output.result
domo.route '!eval *', getCode, (res) ->
new Sandbox().run res.code, (output) =>
res.channel, output.result
domo.route '!eval', (res) ->
res.channel, """
Domo-eval - Javascript evaluator for Domo
usage: !eval <flags> <JavaScript|CoffeeScript>
Flags:
-c [-v] Evaluate coffeescript, verbose compiled JavaScript with -v flag
"""