From aef8281ad66186be6cf4b82430859ac9469beae2 Mon Sep 17 00:00:00 2001 From: Mikayla Fischler Date: Sun, 18 Jun 2023 01:19:00 -0400 Subject: [PATCH] #258 more installer fixes --- ccmsi.lua | 25 +++++++++++++++---------- graphics/core.lua | 2 +- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/ccmsi.lua b/ccmsi.lua index 7fefba7..0b42bd9 100644 --- a/ccmsi.lua +++ b/ccmsi.lua @@ -20,7 +20,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. local function println(message) print(tostring(message)) end local function print(message) term.write(tostring(message)) end -local CCMSI_VERSION = "v1.4b" +local CCMSI_VERSION = "v1.4c" local install_dir = "/.install-cache" local manifest_path = "https://mikaylafischler.github.io/cc-mek-scada/manifests/" @@ -410,6 +410,17 @@ elseif mode == "install" or mode == "update" then local success = true + -- helper function to check if a dependency is unchanged + ---@nodiscard + ---@param dependency string + ---@return boolean + local function unchanged(dependency) + if dependency == "system" then return not ver.boot.changed + elseif dependency == "graphics" then return not ver.graphics.changed + elseif dependency == app then return not ver.app.changed + else return true end + end + if not single_file_mode then if fs.exists(install_dir) then fs.delete(install_dir) @@ -418,9 +429,7 @@ elseif mode == "install" or mode == "update" then -- download all dependencies for _, dependency in pairs(dependencies) do - if mode == "update" and ((dependency == "system" and not ver.boot.changed) or - (dependency == "graphics" and not ver.graphics.changed) or - (not ver.app.changed)) then + if mode == "update" and unchanged(dependency) then pkg_message("skipping download of unchanged package", dependency) else pkg_message("downloading package", dependency) @@ -448,9 +457,7 @@ elseif mode == "install" or mode == "update" then -- copy in downloaded files (installation) if success then for _, dependency in pairs(dependencies) do - if mode == "update" and ((dependency == "system" and not ver.boot.changed) or - (dependency == "graphics" and not ver.graphics.changed) or - (not ver.app.changed)) then + if mode == "update" and unchanged(dependency) then pkg_message("skipping install of unchanged package", dependency) else pkg_message("installing package", dependency) @@ -492,9 +499,7 @@ elseif mode == "install" or mode == "update" then else -- go through all files and replace one by one for _, dependency in pairs(dependencies) do - if mode == "update" and ((dependency == "system" and not ver.boot.changed) or - (dependency == "graphics" and not ver.graphics.changed) or - (not ver.app.changed)) then + if mode == "update" and unchanged(dependency) then pkg_message("skipping install of unchanged package", dependency) else pkg_message("installing package", dependency) diff --git a/graphics/core.lua b/graphics/core.lua index c343308..27ede11 100644 --- a/graphics/core.lua +++ b/graphics/core.lua @@ -7,7 +7,7 @@ local flasher = require("graphics.flasher") local core = {} -core.version = "1.0.0-test2" +core.version = "1.0.0-test3" core.flasher = flasher core.events = events