refactor(gate): streamline gate installers and support multi-station codes via splitCsv

This commit is contained in:
2026-07-14 20:34:58 +08:00
parent 5bd2e5b882
commit e6eae25cf1
2 changed files with 20 additions and 7 deletions
+14 -2
View File
@@ -13,6 +13,17 @@ end
local function splitCsv(s)
local out = {}
s = trim(s)
if #s == 0 then return out end
for part in s:gmatch("[^,/%s]+") do
local v = trim(part)
if #v > 0 then table.insert(out, v) end
end
return out
end
local function writeFile(path, content, binary)
local mode = binary and "wb" or "w"
local f = fs.open(path, mode)
@@ -86,7 +97,7 @@ term.setCursorPos(1, 1)
print("Ticket Gate Installer")
print("")
local stationCode = trim(prompt("Station code: "))
local stationCode = trim(prompt("Station code(s) [comma or / separated]: "))
if #stationCode == 0 then
print("No station code provided.")
return
@@ -94,7 +105,8 @@ end
local modeRaw = prompt("Gate mode (entry/exit): ")
local mode = (trim(modeRaw):lower() == "exit") and "exit" or "entry"
local cfg = { mode = mode, station_codes = { stationCode }, station_code = stationCode }
local parsedCodes = splitCsv(stationCode)
local cfg = { mode = mode, station_codes = parsedCodes, station_code = parsedCodes[1] or stationCode }
local okCfg, cfgJson = pcall(textutils.serializeJSON, cfg)
if not okCfg then
print("Config serialize failed.")