Skip to content
Closed
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
f0208a2
Added 32bit flag
dariusc93 Nov 7, 2018
c45877f
my pc change cargo.lock
Nov 8, 2018
761914b
Merge remote-tracking branch 'upstream/master'
Nov 8, 2018
452ccdc
Merge remote-tracking branch 'upstream/master'
Nov 9, 2018
4e782b3
Merge remote-tracking branch 'upstream/master'
aleksanderwlodarczyk Nov 10, 2018
545787a
Merge remote-tracking branch 'upstream/master'
aleksanderwlodarczyk Nov 11, 2018
1a83171
merged and fixed conflicts
aleksanderwlodarczyk Nov 12, 2018
05b1e25
Merge remote-tracking branch 'upstream/master'
aleksanderwlodarczyk Nov 14, 2018
7217554
Merge remote-tracking branch 'upstream/master'
aleksanderwlodarczyk Nov 15, 2018
0fa7c54
Cargo.lock change before merge
aleksanderwlodarczyk Nov 16, 2018
b366abf
Cargo.lock confilt fix
aleksanderwlodarczyk Nov 16, 2018
6d47275
Merge remote-tracking branch 'upstream/master'
aleksanderwlodarczyk Nov 17, 2018
d80ac86
Cargo.lock before merge
aleksanderwlodarczyk Nov 19, 2018
d0d317f
confilct fixed
aleksanderwlodarczyk Nov 19, 2018
92e3570
commit before merge
Nov 28, 2018
99ec8d6
conflict fixed
Nov 28, 2018
f63a6ee
Merge branch 'master' of https://github.com/aleksanderwlodarczyk/torc…
Nov 28, 2018
f82a72e
local changes to overwrite
aleksanderwlodarczyk Dec 18, 2018
ae33a35
Merge remote-tracking branch 'upstream/master'
aleksanderwlodarczyk Dec 18, 2018
cbc6db8
Merge branch 'master' of https://github.com/aleksanderwlodarczyk/torc…
aleksanderwlodarczyk Dec 18, 2018
514d717
Merge remote-tracking branch 'upstream/master'
aleksanderwlodarczyk Dec 20, 2018
1d9fe0e
Merge remote-tracking branch 'upstream/master'
aleksanderwlodarczyk Dec 21, 2018
064748b
Merge remote-tracking branch 'upstream/master'
invalid-email-address Dec 26, 2018
baa1433
Merge remote-tracking branch 'upstream/master'
aleksanderwlodarczyk Jan 3, 2019
0830b83
Merge branch 'master' of https://github.com/aleksanderwlodarczyk/torc…
aleksanderwlodarczyk Jan 3, 2019
94c9eb3
Merge remote-tracking branch 'upstream/master'
aleksanderwlodarczyk Jan 10, 2019
efd6097
Merge branch 'master' of https://github.com/aleksanderwlodarczyk/torc…
aleksanderwlodarczyk Jan 10, 2019
cafd7fa
Merge branch 'master' of https://github.com/aleksanderwlodarczyk/torc…
aleksanderwlodarczyk Jan 12, 2019
a5bd5a5
Merge remote-tracking branch 'upstream/master'
aleksanderwlodarczyk Jan 12, 2019
9211f40
package.searchers[2] patching
aleksanderwlodarczyk Jan 13, 2019
5054386
splitted into functions
aleksanderwlodarczyk Jan 13, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions src/handlers/bridge.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@

-- Patch require to log all executed modules
_G._require = require

local default_searchers = package.searchers[2]

_G._require = require
function _G.require (module_name)
if package.loaded[module_name] == nil then
Expand All @@ -8,6 +12,82 @@ function _G.require (module_name)
return _require(module_name)
end

package.searchers[2] = function(name)
package.preload[name] = function(modulename)
local created_file = io.open("module.lua", "w+")
local modulepath = string.gsub(modulename, "%.", "/")
local path = "/"
local filename = string.gsub(path, "%?", modulepath)
local file = io.open(filename, "rb")
modulepath = modulepath
if file then
process_module(modulepath, modulename, created_file)
-- Compile and return the module
local compiled = compile_module(modulepath)
os.execute("rm module.lua")
return compiled
end
end
return require(name)
end


function compile_module(modulepath)
local to_compile = io.open("module.lua", "rb")
local compiled = assert(load(assert(to_compile:read("*a")), modulepath))

return compiled
end

function count_lines(modulepath)
local counters = { }
-- count lines to check if last line isn't return
local line_count = 0;
local return_line_num = 0;
for line in io.lines(modulepath .. ".lua") do
if line ~= "" then line_count = line_count + 1 end
if string.find(line, "return") ~= nil then
return_line_num = line_count
end
end
counters[1] = line_count
counters[2] = return_line_num

return counters
end

function process_module(modulepath, modulename, created_file)
created_file:write("local module_timer = os.clock()")

line_nums = count_lines(modulepath)
-- count lines to check if last line isn't return
local line_count = line_nums[1];
local return_line_num = line_nums[2];

local return_on_last_line = false;
if return_line_num == line_count then return_on_last_line = true end
local last_line_return = ""

-- rewrite file content
local line_num = 0
for line in io.lines(modulepath .. ".lua") do

if line ~= "" then line_num = line_num + 1 end
if return_on_last_line == false or line_num ~= line_count then
created_file:write(line .. "\n\t")
else
last_line_return = line
end
end

created_file:write("\n\tlocal elapsed = (os.clock() - module_timer) * 1000")
created_file:write("\n\r_log.info(\"" .. modulename .. " done in \" .. elapsed .. \" milliseconds\")")
if return_on_last_line then
created_file:write("\n" .. last_line_return)
end
created_file:close()
end

xpcall(function ()
local init_f, err = loadfile(torchbear.init_filename)
if not init_f then error(err) end
Expand Down