package main import ( "context" "fmt" "log" "log/slog" "os" "tasksquire/common" "tasksquire/pages" "tasksquire/taskwarrior" tea "github.com/charmbracelet/bubbletea" ) func main() { var taskrcPath string if taskrcEnv := os.Getenv("TASKRC"); taskrcEnv != "" { taskrcPath = taskrcEnv } else if _, err := os.Stat(os.Getenv("HOME") + "/.taskrc"); err == nil { taskrcPath = os.Getenv("HOME") + "/.taskrc" } else if _, err := os.Stat(os.Getenv("HOME") + "/.config/task/taskrc"); err == nil { taskrcPath = os.Getenv("HOME") + "/.config/task/taskrc" } else { log.Fatal("Unable to find taskrc file") } ts := taskwarrior.NewTaskSquire(taskrcPath) ctx := context.Background() common := common.NewCommon(ctx, ts) file, err := os.OpenFile("app.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { log.Fatalf("failed to open log file: %v", err) } defer file.Close() // Create a new slog handler for the file handler := slog.NewTextHandler(file, &slog.HandlerOptions{}) // Set the default logger to use the file handler slog.SetDefault(slog.New(handler)) // form := huh.NewForm( // huh.NewGroup( // huh.NewSelect[string](). // Options(huh.NewOptions(config.Reports...)...). // Title("Report"). // Description("Choose the report to display"). // Value(&report), // ), // ) // err = form.Run() // if err != nil { // slog.Error("Uh oh:", err) // os.Exit(1) // } m := pages.NewMainPage(common) if _, err := tea.NewProgram(m, tea.WithAltScreen()).Run(); err != nil { fmt.Println("Error running program:", err) os.Exit(1) } }