func chooseDevice(controller *spotcontrol.SpircController, reader *bufio.Reader) string { devices := controller.ListDevices() if len(devices) == 0 { fmt.Println("no devices") return "" } fmt.Println("\n choose a device:") for i, d := range devices { fmt.Printf("%v) %v %v \n", i, d.Name, d.Ident) } for { fmt.Print("Enter device number: ") text, _ := reader.ReadString('\n') i, err := strconv.Atoi(strings.TrimSpace(text)) if err == nil && i < len(devices) && i >= 0 { return devices[i].Ident } fmt.Println("invalid device number") } }