diff --git a/.gitignore b/.gitignore index be0947b..afb88d8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ nginx.conf.compiled secret/ cache/ lint_config.lua +.DS_Store diff --git a/lapis/console/assets/main_js.lua b/lapis/console/assets/main_js.lua index aab4100..29e2207 100644 --- a/lapis/console/assets/main_js.lua +++ b/lapis/console/assets/main_js.lua @@ -33,6 +33,7 @@ return [==[ } opts = $.param({ lang: "moonscript" + // lang: "lua" }); this.set_status("loading", "Loading..."); return $.post("?" + opts, { diff --git a/lapis/console/init.lua b/lapis/console/init.lua index 02120cb..b71241b 100644 --- a/lapis/console/init.lua +++ b/lapis/console/init.lua @@ -187,6 +187,31 @@ make = function(opts) } end end + elseif self.params.lang == "lua" then + local fn, err = loadstring(self.params.code) + if err then + return { + json = { + error = err + } + } + else + local lines, queries = run(self, fn) + if lines then + return { + json = { + lines = lines, + queries = queries + } + } + else + return { + json = { + error = queries + } + } + end + end end end) }) diff --git a/lapis/console/init.moon b/lapis/console/init.moon index 27ac946..83870ee 100644 --- a/lapis/console/init.moon +++ b/lapis/console/init.moon @@ -104,6 +104,16 @@ make = (opts={}) -> { json: { :lines, :queries } } else { json: { error: queries } } + elseif @params.lang == "lua" + fn, err = loadstring @params.code + if err + { json: { error: err } } + else + lines, queries = run @, fn + if lines + { json: { :lines, :queries } } + else + { json: { error: queries } } } diff --git a/lapis/console/views/console.lua b/lapis/console/views/console.lua index 0f59861..46ee195 100644 --- a/lapis/console/views/console.lua +++ b/lapis/console/views/console.lua @@ -3,6 +3,7 @@ Widget = require("lapis.html").Widget local embed_assets = true local Console do + local _class_0 local _parent_0 = Widget local _base_0 = { body_content = function(self) @@ -111,9 +112,9 @@ do } _base_0.__index = _base_0 setmetatable(_base_0, _parent_0.__base) - local _class_0 = setmetatable({ + _class_0 = setmetatable({ __init = function(self, ...) - return _parent_0.__init(self, ...) + return _class_0.__parent.__init(self, ...) end, __base = _base_0, __name = "Console", @@ -122,7 +123,10 @@ do __index = function(cls, name) local val = rawget(_base_0, name) if val == nil then - return _parent_0[name] + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end else return val end