Add multi-server support for the repo/installer

This commit is contained in:
2026-01-02 23:08:01 -05:00
parent 95b5ba401f
commit 94412549fb
4 changed files with 120 additions and 64 deletions

View File

@ -5,17 +5,10 @@
local baseUrl = "https://git.munebase.dev/Munelit/StargateControl/raw/branch/master/"
local files = {
-- Core files (always download)
"startup.lua",
"addresses.lua",
"utils.lua",
"display.lua",
"events.lua",
"handlers.lua",
-- Config file (only download if doesn't exist)
config = "config.lua"
-- Available address book servers
local addressBooks = {
"ATM9"
-- Add more servers here as they become available
}
local function downloadFile(filename, url)
@ -60,11 +53,40 @@ if not http then
return
end
-- Select address book
print("Available address books:")
for i, book in ipairs(addressBooks) do
print(" " .. i .. ". " .. book)
end
print("")
print("Which address book would you like to use?")
write("Enter number (default 1): ")
local choice = tonumber(read()) or 1
if choice < 1 or choice > #addressBooks then
print("Invalid choice, using ATM9")
choice = 1
end
local selectedAddressBook = addressBooks[choice]
print("Selected: " .. selectedAddressBook)
print("")
local success = 0
local failed = 0
-- Core files to download
local coreFiles = {
"startup.lua",
"utils.lua",
"display.lua",
"events.lua",
"handlers.lua"
}
-- Download core files
for _, filename in ipairs(files) do
print("Downloading core files...")
for _, filename in ipairs(coreFiles) do
local url = baseUrl .. filename
if downloadFile(filename, url) then
success = success + 1
@ -74,6 +96,7 @@ for _, filename in ipairs(files) do
end
-- Download config file only if it doesn't exist
print("")
if fs.exists("config.lua") then
print("Config file already exists - skipping")
print(" [SKIP] config.lua")
@ -86,6 +109,40 @@ else
end
end
-- Download addresses.lua from server-specific folder
print("")
print("Downloading addresses for " .. selectedAddressBook .. "...")
local addressUrl = baseUrl .. "addresses/" .. selectedAddressBook .. "/addresses.lua"
if downloadFile("addresses.lua", addressUrl) then
success = success + 1
else
failed = failed + 1
end
-- Update config with selected address book
print("")
print("Configuring address book setting...")
if fs.exists("config.lua") then
local file = fs.open("config.lua", "r")
if file then
local content = file.readAll()
file.close()
-- Update addressBook line
content = content:gsub(
'config%.addressBook%s*=%s*"[^"]*"',
'config.addressBook = "' .. selectedAddressBook .. '"'
)
file = fs.open("config.lua", "w")
if file then
file.write(content)
file.close()
print(" [OK] Address book set to: " .. selectedAddressBook)
end
end
end
print("")
print("========================================")
print("Installation complete!")
@ -100,8 +157,10 @@ if failed > 0 then
else
print("All files downloaded successfully!")
print("")
print("To start the program, run: startup")
print("The system will start automatically.")
print("To change settings, edit config.lua")
print("")
print("Note: You may need to configure config.lua")
print("with your specific settings before running.")
print("Rebooting in 3 seconds...")
sleep(3)
os.reboot()
end