: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