package cli import ( "database/sql" "errors" "fmt" "os/exec" "sevenkeys/logic" ) var output string func showOutput() { if output != "" { fmt.Println(output) } } func MainCliLoop(db *sql.DB) { var command string for { ShowSplashScreen() showStorageInfo() showSearchCriteria() showSelectedCard() showCopiesInserted() command = GetStringResponse("SEVENKEYS $") switch command { case "quit": return case "storage": getStorageOptions() break case "criteria": getSearchCriteria() break case "search": getSearchOptions(db) var previousCardPrintingId = cardStorageLocation.CardPrintingId var err error cardStorageLocation.CardPrintingId, selectedCardPrintingSearchLine, err = logic.Search(searchOptions) var exitError *exec.ExitError if errors.As(err, &exitError) { break } logic.Check(err) output = "" if cardStorageLocation.CardPrintingId != previousCardPrintingId { copiesInserted = 0 } break case "insert": insertSelectedCard(db) break default: fmt.Println("Unrecognized command:", command) break } } }