From 5d7a0b266aa4f78331273191d33975178d77b234 Mon Sep 17 00:00:00 2001 From: Mikayla Fischler Date: Tue, 3 Oct 2023 23:11:52 -0400 Subject: [PATCH] handle new settings file and not deleting legacy config --- ccmsi.lua | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/ccmsi.lua b/ccmsi.lua index 6793515..1ec65e9 100644 --- a/ccmsi.lua +++ b/ccmsi.lua @@ -18,7 +18,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.10" +local CCMSI_VERSION = "v1.11" local install_dir = "/.install-cache" local manifest_path = "https://mikaylafischler.github.io/cc-mek-scada/manifests/" @@ -158,7 +158,7 @@ local function _clean_dir(dir, tree) if fs.isDir(path) then _clean_dir(path, tree[val]) if #fs.list(path) == 0 then fs.delete(path);println("deleted " .. path) end - elseif not _in_array(val, tree) then + elseif (not _in_array(val, tree)) and (val ~= "config.lua" ) then ---@fixme remove condition after migration to settings files fs.delete(path) println("deleted " .. path) end @@ -172,7 +172,7 @@ local function clean(manifest) table.insert(tree, "install_manifest.json") table.insert(tree, "ccmsi.lua") - table.insert(tree, "log.txt") -- this won't necessarily work correctly + table.insert(tree, "log.txt") ---@fixme fix after migration to settings files? lgray() @@ -203,8 +203,8 @@ if #opts == 0 or opts[1] == "help" then yellow() println(" ccmsi check for target") lgray() - println(" install - fresh install, overwrites config") - println(" update - update files EXCEPT for config/logs") + println(" install - fresh install, overwrites config.lua") + println(" update - update files EXCEPT for config.lua") println(" uninstall - delete files INCLUDING config/logs") white();println("");lgray() println(" reactor-plc - reactor PLC firmware") @@ -543,28 +543,38 @@ elseif mode == "uninstall" then local file_list = manifest.files local dependencies = manifest.depends[app] - local config_file = app .. "/config.lua" table.insert(dependencies, app) -- delete log file + local log_deleted = false + local settings_file = app .. ".settings" + local legacy_config_file = app .. "/config.lua" + lgray() - if fs.exists(config_file) then - local log_deleted = pcall(function () + if fs.exists(legacy_config_file) then + log_deleted = pcall(function () local config = require(app .. ".config") if fs.exists(config.LOG_PATH) then fs.delete(config.LOG_PATH) println("deleted log file " .. config.LOG_PATH) end end) - - if not log_deleted then - red();println("Failed to delete log file.") - white();println("press any key to continue...") - any_key();lgray() + elseif fs.exists(settings_file) and settings.load(settings_file) then + local log = settings.get("LogPath") + if log ~= nil and fs.exists(log) then + log_deleted = true + fs.delete(log) + println("deleted log file " .. log) end end + if not log_deleted then + red();println("Failed to delete log file.") + white();println("press any key to continue...") + any_key();lgray() + end + -- delete all installed files for _, dependency in pairs(dependencies) do local files = file_list[dependency] @@ -584,6 +594,11 @@ elseif mode == "uninstall" then end end + if fs.exists(settings_file) then + fs.delete(settings_file) + println("deleted " .. settings_file) + end + fs.delete("install_manifest.json") println("deleted install_manifest.json")