package main import ( "bufio" "fmt" "log" "os" "strings" ) func mainMenu(app *Application) { // Display main menu fmt.Println("\n=====================================================") fmt.Printf("| Welcome to the OpenWeatherMap-gRPC Client! v%s |\n", app.Version) fmt.Println("=====================================================") fmt.Printf("New in version %s:\n", app.Version) fmt.Println(" - Advanced option: 'Get historical data' fully functional") fmt.Println("New in version 0.2.0") fmt.Println(" - Added gRPC back end for historical data") fmt.Println(" - Option to search historical data added to UI") var option string // Menu loop for option != "0" { fmt.Print("\nMain Menu\n---------\n\n") fmt.Println("1. Today's forecast (use current location, default)") fmt.Println("2. Advanced options (Change units, precise location, etc.)") fmt.Print("0. Exit\n\n") // Read user input reader := bufio.NewReader(os.Stdin) input, err := reader.ReadString('\n') if err != nil { log.Println(err) } option = strings.TrimSuffix(input, "\n") // Check user input if option == "1" || option == "" { getLocation(app) getCurrent(app) printWeather(app) } else if option == "2" { advancedMenu(app) } else if option == "0" { return } else { fmt.Print("\nOops! An error occurred, please choose a valid option.\n\n") } } }