93 lines
2.9 KiB
Ruby
93 lines
2.9 KiB
Ruby
|
def ask_for_uplink_speed
|
||
|
while true
|
||
|
Curses.clear
|
||
|
Curses.setpos(2, 0)
|
||
|
Curses.addstr("Please enter your uplink speed (upload speed, e.g., 1000Mbps or 1Gbps). ")
|
||
|
Curses.addstr("This is typically the maximum upload speed provided by your ISP. ")
|
||
|
Curses.addstr("You can check your ISP bill, use an online speed test, or contact your ISP if you're unsure. ")
|
||
|
Curses.refresh
|
||
|
speed = Curses.getstr.strip.downcase
|
||
|
if valid_speed?(speed)
|
||
|
return convert_speed_to_mbps(speed)
|
||
|
else
|
||
|
Curses.setpos(3, 0)
|
||
|
Curses.addstr("Whoops! That didn't appear to be a valid speed. Please try again!")
|
||
|
Curses.refresh
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def ask_for_downlink_speed
|
||
|
while true
|
||
|
Curses.clear
|
||
|
Curses.setpos(4, 0)
|
||
|
Curses.addstr("Please enter your downlink speed (download speed, e.g., 1000Mbps or 1Gbps). ")
|
||
|
Curses.addstr("This is typically the maximum download speed provided by your ISP. ")
|
||
|
Curses.addstr("You can check your ISP bill, use an online speed test, or contact your ISP if you're unsure. ")
|
||
|
Curses.refresh
|
||
|
speed = Curses.getstr.strip.downcase
|
||
|
if valid_speed?(speed)
|
||
|
return convert_speed_to_mbps(speed)
|
||
|
else
|
||
|
Curses.setpos(5, 0)
|
||
|
Curses.addstr("Whoops! That didn't appear to be a valid speed. Please try again!")
|
||
|
Curses.refresh
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def valid_speed?(speed)
|
||
|
speed.to_i > 0
|
||
|
end
|
||
|
|
||
|
def ask_for_services
|
||
|
while true
|
||
|
Curses.clear
|
||
|
Curses.setpos(6, 0)
|
||
|
Curses.addstr("Please enter the services the system should be aware of (e.g., webserver, database). ")
|
||
|
Curses.addstr("Enter the services as a comma-separated list (e.g., webserver,database). ")
|
||
|
Curses.refresh
|
||
|
services = Curses.getstr.strip.downcase.split(',').map(&:strip)
|
||
|
if valid_services?(services)
|
||
|
return services_to_hash(services)
|
||
|
else
|
||
|
Curses.setpos(7, 0)
|
||
|
Curses.addstr("Whoops! That didn't appear to be a valid list of services. Please try again!")
|
||
|
Curses.refresh
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def valid_services?(services)
|
||
|
# TODO: Validate the services
|
||
|
true
|
||
|
end
|
||
|
|
||
|
def services_to_hash(services)
|
||
|
services_hash = {}
|
||
|
services.each { |service| services_hash[service] = true }
|
||
|
services_hash
|
||
|
end
|
||
|
|
||
|
def ask_for_db_details
|
||
|
Curses.clear
|
||
|
Curses.setpos(1, 0)
|
||
|
Curses.addstr("Please enter your database username: ")
|
||
|
Curses.refresh
|
||
|
username = Curses.getstr.strip
|
||
|
|
||
|
Curses.setpos(2, 0)
|
||
|
Curses.addstr("Please enter your database password: ")
|
||
|
Curses.refresh
|
||
|
Curses.echo = false
|
||
|
password = Curses.getstr.strip
|
||
|
Curses.echo = true
|
||
|
|
||
|
Curses.setpos(3, 0)
|
||
|
Curses.addstr("Please enter your database name: ")
|
||
|
Curses.refresh
|
||
|
database = Curses.getstr.strip
|
||
|
|
||
|
{ username: username, password: password, database: database }
|
||
|
end
|
||
|
|