Files
Inventory-Manager-CC/.package

98 lines
3.4 KiB
Plaintext

{
title = "Inventory Manager",
description = "Automated inventory management system for CC:Tweaked. Tracks items across networked storage, crafting turtles, furnaces, and alerts. Includes web dashboard via bridge computer.",
repository = "gitea://git.spatulaa.com/MayaTheShy/Inventory-Manager-CC/main/",
exclude = {
"^web/", "^__tests__/", "^startup/",
"%.md$", "%.json$", "^%.git", "^LICENSE$", "^node_modules/",
},
install = [[
local pkgDir = fs.combine("packages", "inventory-manager")
local function ask(prompt, default)
if default and #default > 0 then
write(prompt .. " [" .. default .. "]: ")
else
write(prompt .. ": ")
end
local val = read()
if not val or #val == 0 then return default end
return val
end
print("")
print("-- Inventory Manager Setup --")
print("")
print("Which role(s) will this computer run?")
print(" 1) Inventory Manager (main controller)")
print(" 2) Inventory Client (display-only)")
print(" 3) Web Bridge (HTTP forwarder)")
print(" 4) Skip setup")
print("")
write("Choice (1/2/3/4): ")
local choice = read()
if choice == "1" then
print("")
print("-- Manager Configuration --")
local monitorSide = ask("Monitor side", "left")
local smelterMonitorSide = ask("Smelter monitor side", "top")
local dropperName = ask("Dropper peripheral name", "minecraft:dropper_9")
local barrelName = ask("Barrel peripheral name", "minecraft:barrel_0")
local serverUrl = ask("Web server URL (blank to skip)", "")
local cfg = {
monitorSide = monitorSide,
smelterMonitorSide = smelterMonitorSide,
dropperName = dropperName,
barrelName = barrelName,
}
local f = fs.open(fs.combine(pkgDir, ".manager_config"), "w")
f.write(textutils.serialiseJSON(cfg))
f.close()
print("Saved manager config.")
if serverUrl and #serverUrl > 0 then
local bcfg = { serverUrl = serverUrl }
local bf = fs.open(fs.combine(pkgDir, ".webbridge_config"), "w")
bf.write(textutils.serialiseJSON(bcfg))
bf.close()
print("Saved web bridge config.")
end
elseif choice == "2" then
print("")
print("-- Client Configuration --")
local monitorSide = ask("Monitor side", "left")
local smelterMonitorSide = ask("Smelter monitor side", "top")
local dropperName = ask("Dropper peripheral name (blank if none)", "")
local barrelName = ask("Barrel peripheral name (blank if none)", "")
local cfg = {
monitorSide = monitorSide,
smelterMonitorSide = smelterMonitorSide,
}
if dropperName and #dropperName > 0 then cfg.dropperName = dropperName end
if barrelName and #barrelName > 0 then cfg.barrelName = barrelName end
local f = fs.open(fs.combine(pkgDir, ".client_config"), "w")
f.write(textutils.serialiseJSON(cfg))
f.close()
print("Saved client config.")
elseif choice == "3" then
print("")
print("-- Web Bridge Configuration --")
local serverUrl = ask("Web server URL", "http://localhost")
local cfg = { serverUrl = serverUrl }
local f = fs.open(fs.combine(pkgDir, ".webbridge_config"), "w")
f.write(textutils.serialiseJSON(cfg))
f.close()
print("Saved web bridge config.")
else
print("Skipped — edit config files manually later.")
end
]],
}