Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local target = ...
- if not target then
- print("Usage: "..fs.getName(shell.getRunningProgram()).." [target]")
- return
- end
- local lastDumped = nil
- getfenv(parallel.waitForAny).os = setmetatable({pullEventRaw = function(...)
- local i = 2
- while true do
- local success, result = pcall(function()
- local fn = setfenv(i, getfenv(i))
- return string.dump(fn)
- end)
- i = i + 1
- if success then
- lastDumped = result
- else
- if result:find("invalid level") then
- break
- end
- end
- end
- getfenv(parallel.waitForAny).os = nil
- return coroutine.yield(...)
- end}, {__index = os})
- os.queueEvent("fake-event")
- os.pullEvent("fake-event")
- getfenv(parallel.waitForAny).os = nil
- if lastDumped then
- print("Writing bios file...")
- local handle = fs.open(target, "wb")
- for i=1,lastDumped:len() do
- handle.write(lastDumped:byte(i))
- end
- handle.close()
- print("Successfully dumped (hopefully)!")
- else
- print("Dump failed")
- end
Advertisement
Add Comment
Please, Sign In to add comment