:3
This commit is contained in:
parent
5df9f33c2e
commit
4161160ab6
32
rtmc.lua
32
rtmc.lua
|
@ -1,4 +1,5 @@
|
|||
local __BUNDLER_FILES = {}
|
||||
local __VERSION = "1.0.0d"
|
||||
local __DEFAULT_IMPORT = require
|
||||
local require = function(path)
|
||||
if __BUNDLER_FILES[path] then
|
||||
|
@ -9,10 +10,14 @@ local require = function(path)
|
|||
return __DEFAULT_IMPORT(path)
|
||||
end
|
||||
end
|
||||
rawset(__BUNDLER_FILES, "main.lua", function ()
|
||||
rawset(__BUNDLER_FILES, "main", function ()
|
||||
local updater = require("updater");
|
||||
local log = require("log");
|
||||
local MODULE_NAME = "keypadOS";
|
||||
local MODULE_URL = "https://git.mcorangehq.xyz/xomf/keypadOS/raw/branch/keypad/keypadOS.lua";
|
||||
if not __VERSION then
|
||||
__VERSION = "DEV";
|
||||
end
|
||||
local function updaterLoop(upd)
|
||||
while true do
|
||||
sleep(1)
|
||||
|
@ -20,6 +25,7 @@ rawset(__BUNDLER_FILES, "main.lua", function ()
|
|||
end
|
||||
end
|
||||
local function _start()
|
||||
log.info("Starting bootloader (" .. __VERSION .. ")");
|
||||
local upd = updater.new();
|
||||
upd:addEntry(MODULE_NAME .. ".lua", "keypad", MODULE_URL);
|
||||
parallel.waitForAny(function() updaterLoop(upd) end, require(MODULE_NAME))
|
||||
|
@ -28,7 +34,7 @@ rawset(__BUNDLER_FILES, "main.lua", function ()
|
|||
mod.main = _start;
|
||||
return mod;
|
||||
end)
|
||||
rawset(__BUNDLER_FILES, "log.lua", function ()
|
||||
rawset(__BUNDLER_FILES, "log", function ()
|
||||
local log = {};
|
||||
log.__index = log;
|
||||
function log.error(...)
|
||||
|
@ -45,7 +51,7 @@ rawset(__BUNDLER_FILES, "log.lua", function ()
|
|||
end
|
||||
return log;
|
||||
end)
|
||||
rawset(__BUNDLER_FILES, "json.lua", function ()
|
||||
rawset(__BUNDLER_FILES, "json", function ()
|
||||
local json = { _version = "0.1.2" }
|
||||
local encode
|
||||
local escape_char_map = {
|
||||
|
@ -327,7 +333,7 @@ rawset(__BUNDLER_FILES, "json.lua", function ()
|
|||
end
|
||||
return json
|
||||
end)
|
||||
rawset(__BUNDLER_FILES, "updater.lua", function ()
|
||||
rawset(__BUNDLER_FILES, "updater", function ()
|
||||
local log = require("log");
|
||||
local json = require("json");
|
||||
local _;
|
||||
|
@ -357,7 +363,7 @@ rawset(__BUNDLER_FILES, "updater.lua", function ()
|
|||
for path, entry in pairs(self.updated_files) do
|
||||
if self:check(entry.branch) then
|
||||
self:update(path, entry.url);
|
||||
log.info("Updated!");
|
||||
log.info("Rebooting!");
|
||||
sleep(3);
|
||||
os.reboot();
|
||||
end
|
||||
|
@ -366,6 +372,7 @@ rawset(__BUNDLER_FILES, "updater.lua", function ()
|
|||
function updater:check(branch)
|
||||
local curr = os.time();
|
||||
if not ((math.abs(curr - self.last_check) >= self.threshold) and (self.curr_commit_hash ~= "")) then
|
||||
log.debug("Not time for an update yet");
|
||||
return false;
|
||||
end
|
||||
self.last_check = curr;
|
||||
|
@ -381,8 +388,10 @@ rawset(__BUNDLER_FILES, "updater.lua", function ()
|
|||
end
|
||||
local data = json.decode(body);
|
||||
if self.curr_commit_hash == "" then
|
||||
log.debug("No commit hash found, setting");
|
||||
self.curr_commit_hash = data[1].hash;
|
||||
elseif data[1].hash == self.curr_commit_hash then
|
||||
log.debug("Commit hash doesnt match, probbably an update");
|
||||
return true;
|
||||
end
|
||||
return false;
|
||||
|
@ -407,9 +416,20 @@ rawset(__BUNDLER_FILES, "updater.lua", function ()
|
|||
local fd = fs.open(path, "w");
|
||||
fd.write(body);
|
||||
fd.close();
|
||||
log.debug("New update written to disk (" .. path .. ")");
|
||||
end
|
||||
function updater:notify()
|
||||
end
|
||||
return updater;
|
||||
end)
|
||||
require("main.lua").main()
|
||||
if pcall(debug.getlocal, 4, 1) then
|
||||
local exports = {};
|
||||
for k, v in pairs(__BUNDLER_FILES) do
|
||||
if k ~= "main" then
|
||||
exports[k] = v();
|
||||
end
|
||||
end
|
||||
return exports;
|
||||
else
|
||||
require("main").main()
|
||||
end
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
local updater = require("updater");
|
||||
local log = require("log");
|
||||
|
||||
local MODULE_NAME = "keypadOS";
|
||||
local MODULE_URL = "https://git.mcorangehq.xyz/xomf/keypadOS/raw/branch/keypad/keypadOS.lua";
|
||||
|
||||
if not __VERSION then
|
||||
__VERSION = "DEV";
|
||||
end
|
||||
|
||||
--- @param upd Updater
|
||||
local function updaterLoop(upd)
|
||||
while true do
|
||||
|
@ -12,6 +17,7 @@ local function updaterLoop(upd)
|
|||
end
|
||||
|
||||
local function _start()
|
||||
log.info("Starting bootloader (" .. __VERSION .. ")");
|
||||
local upd = updater.new();
|
||||
upd:addEntry(MODULE_NAME .. ".lua", "keypad", MODULE_URL);
|
||||
parallel.waitForAny(function() updaterLoop(upd) end, require(MODULE_NAME))
|
||||
|
|
|
@ -41,7 +41,7 @@ function updater:checkAndUpdateAll()
|
|||
for path, entry in pairs(self.updated_files) do
|
||||
if self:check(entry.branch) then
|
||||
self:update(path, entry.url);
|
||||
log.info("Updated!");
|
||||
log.info("Rebooting!");
|
||||
sleep(3);
|
||||
os.reboot();
|
||||
end
|
||||
|
@ -51,6 +51,7 @@ end
|
|||
function updater:check(branch)
|
||||
local curr = os.time();
|
||||
if not ((math.abs(curr - self.last_check) >= self.threshold) and (self.curr_commit_hash ~= "")) then
|
||||
log.debug("Not time for an update yet");
|
||||
return false;
|
||||
end
|
||||
self.last_check = curr;
|
||||
|
@ -69,8 +70,10 @@ function updater:check(branch)
|
|||
|
||||
local data = json.decode(body);
|
||||
if self.curr_commit_hash == "" then
|
||||
log.debug("No commit hash found, setting");
|
||||
self.curr_commit_hash = data[1].hash;
|
||||
elseif data[1].hash == self.curr_commit_hash then
|
||||
log.debug("Commit hash doesnt match, probbably an update");
|
||||
return true;
|
||||
end
|
||||
|
||||
|
@ -100,6 +103,7 @@ function updater:update(path, url)
|
|||
local fd = fs.open(path, "w");
|
||||
fd.write(body);
|
||||
fd.close();
|
||||
log.debug("New update written to disk (" .. path .. ")");
|
||||
end
|
||||
|
||||
function updater:notify()
|
||||
|
|
23
x.py
23
x.py
|
@ -1,5 +1,4 @@
|
|||
#!/usr/bin/python
|
||||
import hashlib
|
||||
OUTPUT="rtmc.lua";
|
||||
FILES= [
|
||||
"main.lua",
|
||||
|
@ -8,12 +7,13 @@ FILES= [
|
|||
"updater.lua"
|
||||
]
|
||||
|
||||
VERSION="1.0.0d"
|
||||
MINIMISE=True
|
||||
|
||||
def read_file(p: str) -> str:
|
||||
buf = "";
|
||||
with open("src/"+p, "r", encoding="utf-8") as f:
|
||||
buf += f"rawset(__BUNDLER_FILES, \"{p}\", function ()\n";
|
||||
buf += f"rawset(__BUNDLER_FILES, \"{p.replace(".lua", "")}\", function ()\n";
|
||||
for line in f.readlines():
|
||||
buf += " " + line;
|
||||
buf += "\nend)";
|
||||
|
@ -39,7 +39,8 @@ def minimise(buf: str) -> str:
|
|||
# hasher.update(bytes(buf, "utf-8"));
|
||||
# return hasher.hexdigest();
|
||||
|
||||
REQ_HEADER="""local __BUNDLER_FILES = {}
|
||||
REQ_HEADER=f"""local __BUNDLER_FILES = {{}}
|
||||
local __VERSION = "{VERSION}"
|
||||
local __DEFAULT_IMPORT = require
|
||||
local require = function(path)
|
||||
if __BUNDLER_FILES[path] then
|
||||
|
@ -52,6 +53,20 @@ local require = function(path)
|
|||
end
|
||||
"""
|
||||
|
||||
REQ_FOOTER="""
|
||||
if pcall(debug.getlocal, 4, 1) then
|
||||
local exports = {};
|
||||
for k, v in pairs(__BUNDLER_FILES) do
|
||||
if k ~= "main" then
|
||||
exports[k] = v();
|
||||
end
|
||||
end
|
||||
return exports;
|
||||
else
|
||||
require("main").main()
|
||||
end
|
||||
"""
|
||||
|
||||
|
||||
def main():
|
||||
buf = ""
|
||||
|
@ -61,7 +76,7 @@ def main():
|
|||
print(f"=== FILE: {file}");
|
||||
buf += read_file(file);
|
||||
|
||||
buf += "require(\"main.lua\").main()\n";
|
||||
buf += REQ_FOOTER;
|
||||
|
||||
if MINIMISE:
|
||||
buf = minimise(buf);
|
||||
|
|
Loading…
Reference in New Issue
Block a user