fix: resolve all paths relative to script directory for Opus package compatibility
- Add _baseDir/_path() resolution using shell.getRunningProgram() in all entry-point scripts (inventoryManager, inventoryClient, craftingTurtle, inventoryWebBridge) - Pass _path function through to manager/config.lua for data/ and config files - Config files (.manager_config, .inventory_cache, etc.) now resolve relative to the package directory rather than CWD - Exclude startup/ auto-updater scripts from Opus .package manifest - All dofile() calls now use _path() for portable path resolution
This commit is contained in:
@@ -1,7 +1,10 @@
|
|||||||
-- manager/config.lua — Configuration constants, data tables, and lookup structures
|
-- manager/config.lua — Configuration constants, data tables, and lookup structures
|
||||||
-- Usage: local cfg = dofile("manager/config.lua")(log)
|
-- Usage: local cfg = dofile(_path("manager/config.lua"))(log, _path)
|
||||||
|
|
||||||
return function(log)
|
return function(log, _path)
|
||||||
|
|
||||||
|
-- Fall back to CWD-relative if _path not provided (standalone use)
|
||||||
|
if not _path then _path = function(p) return p end end
|
||||||
|
|
||||||
local C = {}
|
local C = {}
|
||||||
|
|
||||||
@@ -19,9 +22,9 @@ C.SMELT_RESERVE = 128
|
|||||||
C.DEFRAG_INTERVAL = 600
|
C.DEFRAG_INTERVAL = 600
|
||||||
C.COMPOST_INTERVAL = 3
|
C.COMPOST_INTERVAL = 3
|
||||||
C.ALERT_INTERVAL = 15
|
C.ALERT_INTERVAL = 15
|
||||||
C.CACHE_FILE = ".inventory_cache"
|
C.CACHE_FILE = _path(".inventory_cache")
|
||||||
C.SMELTER_MONITOR_SIDE = "top"
|
C.SMELTER_MONITOR_SIDE = "top"
|
||||||
C.DISABLED_RECIPES_FILE = ".disabled_recipes"
|
C.DISABLED_RECIPES_FILE = _path(".disabled_recipes")
|
||||||
|
|
||||||
-- Network
|
-- Network
|
||||||
C.BROADCAST_CHANNEL = 4200
|
C.BROADCAST_CHANNEL = 4200
|
||||||
@@ -57,7 +60,7 @@ C.SLOT_OUTPUT = 3
|
|||||||
-- Config file loader
|
-- Config file loader
|
||||||
-------------------------------------------------
|
-------------------------------------------------
|
||||||
|
|
||||||
local CONFIG_FILE = ".manager_config"
|
local CONFIG_FILE = _path(".manager_config")
|
||||||
|
|
||||||
function C.loadConfig()
|
function C.loadConfig()
|
||||||
if not fs.exists(CONFIG_FILE) then return end
|
if not fs.exists(CONFIG_FILE) then return end
|
||||||
@@ -97,13 +100,13 @@ end
|
|||||||
-- Data tables
|
-- Data tables
|
||||||
-------------------------------------------------
|
-------------------------------------------------
|
||||||
|
|
||||||
C.SMELTABLE = dofile("data/smeltable.lua")
|
C.SMELTABLE = dofile(_path("data/smeltable.lua"))
|
||||||
C.FUEL_LIST = dofile("data/fuel.lua")
|
C.FUEL_LIST = dofile(_path("data/fuel.lua"))
|
||||||
local _compostData = dofile("data/compostable.lua")
|
local _compostData = dofile(_path("data/compostable.lua"))
|
||||||
C.COMPOSTABLE = _compostData.items
|
C.COMPOSTABLE = _compostData.items
|
||||||
C.COMPOST_TRASH = _compostData.trash
|
C.COMPOST_TRASH = _compostData.trash
|
||||||
C.CRAFTABLE = dofile("data/craftable.lua")
|
C.CRAFTABLE = dofile(_path("data/craftable.lua"))
|
||||||
C.LOW_STOCK_ALERTS = dofile("data/alerts.lua")
|
C.LOW_STOCK_ALERTS = dofile(_path("data/alerts.lua"))
|
||||||
|
|
||||||
-- Pre-build furnace compatibility sets for O(1) lookup
|
-- Pre-build furnace compatibility sets for O(1) lookup
|
||||||
for _, recipe in pairs(C.SMELTABLE) do
|
for _, recipe in pairs(C.SMELTABLE) do
|
||||||
|
|||||||
Reference in New Issue
Block a user