NETRAVE/lib/utils/first_run_init.rb

60 lines
1.6 KiB
Ruby
Raw Normal View History

require 'curses'
def first_run_setup
color = ask_for_color
# TODO: Use the color for something
db_details = ask_for_db_details
while !test_db_connection(db_details)
Curses.setpos(4, 0)
Curses.addstr("Whoops! We couldn't connect to the database with the details you provided. Please try again!")
Curses.refresh
db_details = ask_for_db_details
end
uplink_speed = ask_for_uplink_speed
# TODO: Use the uplink speed for something
downlink_speed = ask_for_downlink_speed
# TODO: Use the downlink speed for something
total_bandwidth = calculate_total_bandwidth(uplink_speed, downlink_speed)
# TODO: Use the total bandwidth for something
services = ask_for_services
# TODO: Use the services for something
# ...
end
def ask_for_color
while true
Curses.clear
Curses.setpos(0, 0)
Curses.addstr("Please enter your preferred color (white, red, or black): ")
Curses.refresh
color = Curses.getstr.strip.downcase
if ['white', 'red', 'black'].include?(color)
return color
else
Curses.setpos(1, 0)
Curses.addstr("Whoops! That didn't appear to be a valid color. Please try again!")
Curses.refresh
end
end
end
def ask_for_default_mode
while true
Curses.setpos(8, 0)
Curses.addstr("Please enter the default mode (TUI, GUI, or WebApp): ")
Curses.refresh
mode = Curses.getstr.strip.downcase
if valid_mode?(mode)
return mode
else
Curses.setpos(9, 0)
Curses.addstr("Whoops! That didn't appear to be a valid mode. Please try again!")
Curses.refresh
end
end
end
def valid_mode?(mode)
['tui', 'gui', 'webapp'].include?(mode)
end