Compare commits

...

9 Commits

Author SHA1 Message Date
8c8221f789 wrong repo oopsies 2025-06-02 00:31:44 +00:00
af8d46154c Add App Store.lua 2025-06-02 00:31:15 +00:00
ebf3f8a35a :3 2024-08-26 00:18:19 +03:00
63704f0447 :3 2024-08-26 00:18:11 +03:00
59dc5edde5 :3 2024-08-25 23:56:48 +03:00
4df6073f9c :3 2024-08-25 23:52:04 +03:00
dfa9e305ab :3 2024-08-25 23:48:10 +03:00
85dac18494 :3 added bindings for bootloader lib 2024-08-25 23:44:09 +03:00
2b744a5813 added exports to modules 2024-08-25 23:31:35 +03:00
6 changed files with 70 additions and 12 deletions

23
bindings.lua Normal file
View 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)

View File

@@ -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,9 +370,7 @@ 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;
@@ -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)

View File

@@ -22,6 +22,7 @@
-- SOFTWARE. -- SOFTWARE.
-- --
--- @class JsonParser
local json = { _version = "0.1.2" } local json = { _version = "0.1.2" }
------------------------------------------------------------------------------- -------------------------------------------------------------------------------

View File

@@ -1,3 +1,5 @@
--- @class Logger
local log = {}; local log = {};
log.__index = log; log.__index = log;

View File

@@ -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 = {};

View File

@@ -32,9 +32,7 @@ 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()
@@ -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