Add multi-server support for the repo/installer
This commit is contained in:
89
install.lua
89
install.lua
@ -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
|
||||
|
||||
Reference in New Issue
Block a user