1
Fork 0
Bahn2GPX/main.go

64 lines
1.1 KiB
Go
Raw Permalink Normal View History

2021-11-20 15:24:31 +00:00
package main
import (
"bufio"
"fmt"
"log"
"os"
)
func main() {
db, err := parseData()
if err != nil {
log.Println(err.Error())
os.Exit(1)
}
selected := []*station{}
terminal := bufio.NewReader(os.Stdin)
fmt.Println("Select the station you want to create a route for. Press f to finish.")
fmt.Println()
s := 1
for {
fmt.Printf("Station %d: ", s)
station, err := terminal.ReadString('\n')
if err != nil {
log.Println(err.Error())
os.Exit(1)
}
station = station[:len(station)-1]
if station == "f" {
break
}
stations, err := findStations(db, station)
if err != nil {
log.Println(err.Error())
os.Exit(1)
}
if len(stations) == 0 {
fmt.Println("No stations found")
continue
}
if len(stations) > 1 {
fmt.Println("Multiple stations found")
for i, s := range stations {
2021-11-20 16:56:46 +00:00
fmt.Printf("%d: %s (%s)\n", i+1, s.name, s.id)
2021-11-20 15:24:31 +00:00
}
continue
}
selected = append(selected, stations[0])
s++
}
if len(selected) < 2 {
fmt.Println("You need to select at least two stations")
os.Exit(1)
}
fmt.Println("\nYour gpx:")
gpx := createRoute(selected)
gpx.WriteIndent(os.Stdout, "", " ")
fmt.Println()
}