Compare commits
9 Commits
ffa88f010c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 8c8221f789 | |||
| af8d46154c | |||
|
ebf3f8a35a
|
|||
|
63704f0447
|
|||
|
59dc5edde5
|
|||
|
4df6073f9c
|
|||
|
dfa9e305ab
|
|||
|
85dac18494
|
|||
|
2b744a5813
|
23
bindings.lua
Normal file
23
bindings.lua
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
--- @class Exports
|
||||||
|
--- @field log Logger
|
||||||
|
--- @field updater Updater
|
||||||
|
--- @field notifier Notifier
|
||||||
|
--- @field json JsonParser
|
||||||
|
|
||||||
|
|
||||||
|
--- @class Logger
|
||||||
|
--- @field error fun(...)
|
||||||
|
--- @field warn fun(...)
|
||||||
|
--- @field info fun(...)
|
||||||
|
--- @field debug fun(...)
|
||||||
|
|
||||||
|
--- @class Updater
|
||||||
|
--- @field addEntry fun(self: Updater, path: string, branch: string, url: string)
|
||||||
|
|
||||||
|
--- @class JsonParser
|
||||||
|
--- @field decode fun(s: string): table
|
||||||
|
--- @field encode fun(s: table): string
|
||||||
|
|
||||||
|
--- @class Notifier
|
||||||
|
--- @field notify fun(priority: "1"|"2"|"3"|"4"|"5", body: string)
|
||||||
|
|
||||||
22
rtmc.lua
22
rtmc.lua
@@ -13,6 +13,8 @@ end
|
|||||||
rawset(__BUNDLER_FILES, "main", function ()
|
rawset(__BUNDLER_FILES, "main", function ()
|
||||||
local updater = require("updater");
|
local updater = require("updater");
|
||||||
local log = require("log");
|
local log = require("log");
|
||||||
|
local notifier = require("notifier")
|
||||||
|
local json = require("json")
|
||||||
local MODULE_NAME = "keypadOS";
|
local MODULE_NAME = "keypadOS";
|
||||||
local MODULE_URL = "https://git.mcorangehq.xyz/xomf/keypadOS/raw/branch/keypad/keypadOS.lua";
|
local MODULE_URL = "https://git.mcorangehq.xyz/xomf/keypadOS/raw/branch/keypad/keypadOS.lua";
|
||||||
if not __VERSION then
|
if not __VERSION then
|
||||||
@@ -28,7 +30,20 @@ rawset(__BUNDLER_FILES, "main", function ()
|
|||||||
log.info("Starting bootloader (" .. __VERSION .. ")");
|
log.info("Starting bootloader (" .. __VERSION .. ")");
|
||||||
local upd = updater.new();
|
local upd = updater.new();
|
||||||
upd:addEntry(MODULE_NAME .. ".lua", "keypad", MODULE_URL);
|
upd:addEntry(MODULE_NAME .. ".lua", "keypad", MODULE_URL);
|
||||||
parallel.waitForAny(function() updaterLoop(upd) end, require(MODULE_NAME))
|
local lib_exports = {
|
||||||
|
log = log,
|
||||||
|
updater = upd,
|
||||||
|
notifier = notifier,
|
||||||
|
json = json
|
||||||
|
};
|
||||||
|
parallel.waitForAny(
|
||||||
|
function()
|
||||||
|
updaterLoop(upd)
|
||||||
|
end,
|
||||||
|
function ()
|
||||||
|
require(MODULE_NAME).main(lib_exports);
|
||||||
|
end
|
||||||
|
);
|
||||||
end
|
end
|
||||||
local mod = {};
|
local mod = {};
|
||||||
mod.main = _start;
|
mod.main = _start;
|
||||||
@@ -355,10 +370,8 @@ rawset(__BUNDLER_FILES, "updater", function ()
|
|||||||
branch = branch,
|
branch = branch,
|
||||||
url = url
|
url = url
|
||||||
};
|
};
|
||||||
if not fs.exists(path) then
|
|
||||||
self:update(path, url);
|
self:update(path, url);
|
||||||
end
|
end
|
||||||
end
|
|
||||||
function updater:checkAndUpdateAll()
|
function updater:checkAndUpdateAll()
|
||||||
local updated = false;
|
local updated = false;
|
||||||
for path, entry in pairs(self.updated_files) do
|
for path, entry in pairs(self.updated_files) do
|
||||||
@@ -387,7 +400,7 @@ rawset(__BUNDLER_FILES, "updater", function ()
|
|||||||
return false;
|
return false;
|
||||||
end
|
end
|
||||||
local body, berr = req.readAll();
|
local body, berr = req.readAll();
|
||||||
if not req then
|
if not body then
|
||||||
log.error("Updater:check: Could not get body of request: " .. berr);
|
log.error("Updater:check: Could not get body of request: " .. berr);
|
||||||
return false;
|
return false;
|
||||||
end
|
end
|
||||||
@@ -403,6 +416,7 @@ rawset(__BUNDLER_FILES, "updater", function ()
|
|||||||
log.debug("Commit hash matches");
|
log.debug("Commit hash matches");
|
||||||
log.debug(data[1].sha .. " (old) => (new) " .. self.curr_commit_hash);
|
log.debug(data[1].sha .. " (old) => (new) " .. self.curr_commit_hash);
|
||||||
end
|
end
|
||||||
|
write(".");
|
||||||
return false;
|
return false;
|
||||||
end
|
end
|
||||||
function updater:update(path, url)
|
function updater:update(path, url)
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
-- SOFTWARE.
|
-- SOFTWARE.
|
||||||
--
|
--
|
||||||
|
|
||||||
|
--- @class JsonParser
|
||||||
local json = { _version = "0.1.2" }
|
local json = { _version = "0.1.2" }
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
|
||||||
|
--- @class Logger
|
||||||
local log = {};
|
local log = {};
|
||||||
log.__index = log;
|
log.__index = log;
|
||||||
|
|
||||||
|
|||||||
23
src/main.lua
23
src/main.lua
@@ -1,5 +1,7 @@
|
|||||||
local updater = require("updater");
|
local updater = require("updater");
|
||||||
local log = require("log");
|
local log = require("log");
|
||||||
|
local notifier = require("notifier")
|
||||||
|
local json = require("json")
|
||||||
|
|
||||||
local MODULE_NAME = "keypadOS";
|
local MODULE_NAME = "keypadOS";
|
||||||
local MODULE_URL = "https://git.mcorangehq.xyz/xomf/keypadOS/raw/branch/keypad/keypadOS.lua";
|
local MODULE_URL = "https://git.mcorangehq.xyz/xomf/keypadOS/raw/branch/keypad/keypadOS.lua";
|
||||||
@@ -8,6 +10,9 @@ if not __VERSION then
|
|||||||
__VERSION = "DEV";
|
__VERSION = "DEV";
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- @param upd Updater
|
--- @param upd Updater
|
||||||
local function updaterLoop(upd)
|
local function updaterLoop(upd)
|
||||||
while true do
|
while true do
|
||||||
@@ -20,7 +25,23 @@ local function _start()
|
|||||||
log.info("Starting bootloader (" .. __VERSION .. ")");
|
log.info("Starting bootloader (" .. __VERSION .. ")");
|
||||||
local upd = updater.new();
|
local upd = updater.new();
|
||||||
upd:addEntry(MODULE_NAME .. ".lua", "keypad", MODULE_URL);
|
upd:addEntry(MODULE_NAME .. ".lua", "keypad", MODULE_URL);
|
||||||
parallel.waitForAny(function() updaterLoop(upd) end, require(MODULE_NAME))
|
|
||||||
|
--- @type Exports
|
||||||
|
local lib_exports = {
|
||||||
|
log = log,
|
||||||
|
updater = upd,
|
||||||
|
notifier = notifier,
|
||||||
|
json = json
|
||||||
|
};
|
||||||
|
|
||||||
|
parallel.waitForAny(
|
||||||
|
function()
|
||||||
|
updaterLoop(upd)
|
||||||
|
end,
|
||||||
|
function ()
|
||||||
|
require(MODULE_NAME).main(lib_exports);
|
||||||
|
end
|
||||||
|
);
|
||||||
end
|
end
|
||||||
|
|
||||||
local mod = {};
|
local mod = {};
|
||||||
|
|||||||
@@ -32,10 +32,8 @@ function updater:addEntry(path, branch, url)
|
|||||||
branch = branch,
|
branch = branch,
|
||||||
url = url
|
url = url
|
||||||
};
|
};
|
||||||
if not fs.exists(path) then
|
|
||||||
self:update(path, url);
|
self:update(path, url);
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
function updater:checkAndUpdateAll()
|
function updater:checkAndUpdateAll()
|
||||||
local updated = false;
|
local updated = false;
|
||||||
@@ -68,11 +66,10 @@ function updater:check(branch)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local body, berr = req.readAll();
|
local body, berr = req.readAll();
|
||||||
if not req then
|
if not body then
|
||||||
log.error("Updater:check: Could not get body of request: " .. berr);
|
log.error("Updater:check: Could not get body of request: " .. berr);
|
||||||
return false;
|
return false;
|
||||||
end
|
end
|
||||||
|
|
||||||
local data = json.decode(body);
|
local data = json.decode(body);
|
||||||
if self.curr_commit_hash == "" then
|
if self.curr_commit_hash == "" then
|
||||||
log.debug("No commit hash found, setting");
|
log.debug("No commit hash found, setting");
|
||||||
@@ -86,7 +83,7 @@ function updater:check(branch)
|
|||||||
log.debug("Commit hash matches");
|
log.debug("Commit hash matches");
|
||||||
log.debug(data[1].sha .. " (old) => (new) " .. self.curr_commit_hash);
|
log.debug(data[1].sha .. " (old) => (new) " .. self.curr_commit_hash);
|
||||||
end
|
end
|
||||||
|
write(".");
|
||||||
return false;
|
return false;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user