package main import ( "flag" "fmt" tea "github.com/charmbracelet/bubbletea" "github.com/charmbracelet/lipgloss" "github.com/lmika/audax/internal/common/ui/commandctrl" "github.com/lmika/audax/internal/common/ui/logging" "github.com/lmika/audax/internal/slog-view/controllers" "github.com/lmika/audax/internal/slog-view/services/logreader" "github.com/lmika/audax/internal/slog-view/ui" "github.com/lmika/gopkgs/cli" "os" ) func main() { var flagDebug = flag.String("debug", "", "file to log debug messages") flag.Parse() if flag.NArg() == 0 { cli.Fatal("usage: slog-view LOGFILE") } // Pre-determine if layout has dark background. This prevents calls for creating a list to hang. lipgloss.HasDarkBackground() closeFn := logging.EnableLogging(*flagDebug) defer closeFn() service := logreader.NewService() ctrl := controllers.NewLogFileController(service, flag.Arg(0)) cmdController := commandctrl.NewCommandController(nil) //cmdController.AddCommands(&commandctrl.CommandList{ // Commands: map[string]commandctrl.Command{ // "cd": func(args []string) tea.Cmd { // return ctrl.ChangePrefix(args[0]) // }, // }, //}) model := ui.NewModel(ctrl, cmdController) p := tea.NewProgram(model, tea.WithAltScreen()) if err := p.Start(); err != nil { fmt.Printf("Alas, there's been an error: %v", err) os.Exit(1) } }