-- startup.lua for Inventory Manager computer -- Auto-updates from git then launches inventoryManager.lua local REPO_RAW = "https://git.spatulaa.com/MayaTheShy/Inventory-Manager-CC/raw/branch/main" -- Files to download (destination -> repo path) local FILES = { ["inventoryManager.lua"] = "inventoryManager.lua", ["lib/log.lua"] = "lib/log.lua", ["lib/ui.lua"] = "lib/ui.lua", ["data/smeltable.lua"] = "data/smeltable.lua", ["data/fuel.lua"] = "data/fuel.lua", ["data/compostable.lua"] = "data/compostable.lua", ["data/craftable.lua"] = "data/craftable.lua", ["data/alerts.lua"] = "data/alerts.lua", } ------------------------------------------------- local function ensureDir(filePath) local dir = filePath:match("^(.+)/") if dir and not fs.isDir(dir) then fs.makeDir(dir) end end local function download(remotePath, localPath) local url = REPO_RAW .. "/" .. remotePath local response = http.get(url) if response then ensureDir(localPath) local f = fs.open(localPath, "w") f.write(response.readAll()) f.close() response.close() return true end return false end ------------------------------------------------- term.clear() term.setCursorPos(1, 1) print("==================================") print(" Inventory Manager - Startup") print(" Computer ID: " .. os.getComputerID()) print("==================================") print("") -- Update files local updated, failed = 0, 0 for localPath, remotePath in pairs(FILES) do write(" " .. localPath .. " ... ") if download(remotePath, localPath) then print("OK") updated = updated + 1 else print("FAIL") failed = failed + 1 end end print("") if failed > 0 then print(string.format("Updated %d files, %d failed.", updated, failed)) print("Continuing with existing files...") else print(string.format("All %d files up to date.", updated)) end print("") print("Starting inventoryManager...") sleep(1) shell.run("inventoryManager.lua")