52 lines
1.0 KiB
Go
52 lines
1.0 KiB
Go
package main
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"flag"
|
||
|
|
"fmt"
|
||
|
|
"os"
|
||
|
|
|
||
|
|
"github.com/StevanFreeborn/term-tier/internal/handlers"
|
||
|
|
"github.com/StevanFreeborn/term-tier/internal/model"
|
||
|
|
"github.com/StevanFreeborn/term-tier/internal/persistence"
|
||
|
|
"github.com/StevanFreeborn/term-tier/internal/state"
|
||
|
|
tea "github.com/charmbracelet/bubbletea"
|
||
|
|
)
|
||
|
|
|
||
|
|
var (
|
||
|
|
version = "dev"
|
||
|
|
commit = "none"
|
||
|
|
date = "unknown"
|
||
|
|
)
|
||
|
|
|
||
|
|
func main() {
|
||
|
|
showVersion := flag.Bool("version", false, "print version and exit")
|
||
|
|
flag.Parse()
|
||
|
|
|
||
|
|
if *showVersion {
|
||
|
|
fmt.Printf("termtier %s\n", version)
|
||
|
|
fmt.Printf("build date: %s\n", date)
|
||
|
|
fmt.Printf("commit: %s\n", commit)
|
||
|
|
os.Exit(0)
|
||
|
|
}
|
||
|
|
|
||
|
|
saver := persistence.NewFileSaver()
|
||
|
|
|
||
|
|
s := state.New()
|
||
|
|
|
||
|
|
keyMsgHandlers := handlers.GetAllKeyHandlers(saver)
|
||
|
|
winSizeMsgHandlers := handlers.GetAllWinSizeHandlers()
|
||
|
|
|
||
|
|
m := model.New(
|
||
|
|
s,
|
||
|
|
model.WithKeyMsgHandlers(keyMsgHandlers),
|
||
|
|
model.WithWinSizeMsgHandlers(winSizeMsgHandlers),
|
||
|
|
)
|
||
|
|
|
||
|
|
p := tea.NewProgram(m, tea.WithAltScreen())
|
||
|
|
|
||
|
|
if _, err := p.Run(); err != nil {
|
||
|
|
fmt.Printf("Error: %v", err)
|
||
|
|
os.Exit(1)
|
||
|
|
}
|
||
|
|
}
|