package main import ( "os" "path/filepath" "sevenkeys/constants" "sevenkeys/database" "sevenkeys/logic" "sevenkeys/tui" tea "github.com/charmbracelet/bubbletea" "github.com/lukesampson/figlet/figletlib" ) func readFigletFonts() { cwd, err := os.Getwd() logic.Check(err) fontsdir := filepath.Join(cwd, "fonts") constants.FigletFontSlant, err = figletlib.GetFontByName(fontsdir, "slant") logic.Check(err) constants.FigletFontTerm, err = figletlib.GetFontByName(fontsdir, "term") logic.Check(err) } func main() { constants.Database = database.GetDatabaseFromConfig("config.json") readFigletFonts() m := tui.NewMainModel() constants.Program = tea.NewProgram(m, tea.WithAltScreen()) _, err := constants.Program.Run() logic.Check(err) /* fmt.Println("Checking for updates...") bulkData, err := scryfall.GetBulkDataByType(scryfall.BulkDataTypeAllCards) logic.Check(err) needsUpdate, err := logic.CheckForUpdates(db, bulkData) logic.Check(err) if needsUpdate { fmt.Println("Update required.") if logic.ConfirmUpdate() { fmt.Println("Running update...") logic.CreateCacheDirectories() err = logic.UpdateSets(db) logic.Check(err) err = logic.UpdateCards(db, bulkData) logic.Check(err) } fmt.Println("Update finished.") } else { fmt.Println("No update required.") } storageBox := logic.GetResponse("Enter storage box label:") source := logic.GetResponse("Enter source:") storageLocation := database.CardStorageLocation{ StorageBox: storageBox, Source: source, } searchOptions, err := logic.GetAllSearchOptions(db) logic.Check(err) var selectedCardId string var selectedCardSearchOption string = "None" var lastOutput string for { screen.Clear() screen.MoveTopLeft() fmt.Println("Storage location:", storageBox, "|", "Source:", source) fmt.Println("Selected card:", selectedCardSearchOption, "ID:", selectedCardId) if lastOutput != "" { fmt.Println(lastOutput) } var action string action = logic.GetResponse("[s]earch for card/[i]nsert selected card/[q]uit:") switch action { case "s": selectedCardId, selectedCardSearchOption, err = logic.Search(searchOptions) logic.Check(err) storageLocation.CardPrintingId = selectedCardId lastOutput = "" continue case "i": if selectedCardId == "" { lastOutput = "No selected card, please search for one." continue } err = logic.StoreCard(db, storageLocation) logic.Check(err) lastOutput = "Inserted card: " + selectedCardSearchOption break case "q": os.Exit(0) default: lastOutput = "Not a valid command: " + action break } } */ }