Compare commits
	
		
			10 Commits
		
	
	
		
			d99a1ee5bb
			...
			ebf3f8a35a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| ebf3f8a35a | |||
| 63704f0447 | |||
| 59dc5edde5 | |||
| 4df6073f9c | |||
| dfa9e305ab | |||
| 85dac18494 | |||
| 2b744a5813 | |||
| ffa88f010c | |||
| 51b6b7fc95 | |||
| efc78c87b7 | 
							
								
								
									
										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; | ||||||
|  | @ -385,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 | ||||||
|  | @ -401,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) | ||||||
|  | @ -425,7 +441,7 @@ rawset(__BUNDLER_FILES, "updater", function () | ||||||
|         fd.write(body); |         fd.write(body); | ||||||
|         fd.close(); |         fd.close(); | ||||||
|         local notif = "Computer #" .. tostring( os.getComputerID() ) .. " updating"; |         local notif = "Computer #" .. tostring( os.getComputerID() ) .. " updating"; | ||||||
|         notifier.notify("default", notif); |         notifier.notify("5", notif); | ||||||
|         log.debug("New update written to disk (" .. path .. ")"); |         log.debug("New update written to disk (" .. path .. ")"); | ||||||
|     end |     end | ||||||
|     return updater; |     return updater; | ||||||
|  |  | ||||||
|  | @ -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 = {}; | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
| local notifier = {}; | local notifier = {}; | ||||||
| notifier.__index = notifier; | notifier.__index = notifier; | ||||||
| 
 | 
 | ||||||
| --- @param priority "max"|"urgent"|"high"|"default"|"low"|"min" | --- @param priority "1"|"2"|"3"|"4"|"5" | ||||||
| --- @param body string | --- @param body string | ||||||
| function notifier.notify(priority, body) | function notifier.notify(priority, body) | ||||||
|     local headers = { |     local headers = { | ||||||
|  |  | ||||||
|  | @ -66,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"); | ||||||
|  | @ -84,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 | ||||||
| 
 | 
 | ||||||
|  | @ -114,7 +113,7 @@ function updater:update(path, url) | ||||||
|     fd.close(); |     fd.close(); | ||||||
| 
 | 
 | ||||||
|     local notif = "Computer #" .. tostring( os.getComputerID() ) .. " updating"; |     local notif = "Computer #" .. tostring( os.getComputerID() ) .. " updating"; | ||||||
|     notifier.notify("default", notif); |     notifier.notify("5", notif); | ||||||
|     log.debug("New update written to disk (" .. path .. ")"); |     log.debug("New update written to disk (" .. path .. ")"); | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user