dash/main.go
2023-08-18 18:52:40 +02:00

57 lines
1019 B
Go

package main
import (
"os"
"path/filepath"
"time"
"git.akyoto.dev/cli/dash/clock"
"git.akyoto.dev/cli/dash/core"
"git.akyoto.dev/cli/dash/editor"
"github.com/gdamore/tcell/v2"
"github.com/rivo/tview"
)
func main() {
app := tview.NewApplication()
grid := tview.NewGrid()
grid.SetRows(3, 0, 3)
grid.SetColumns(0, 80, 0)
grid.SetBorders(false)
grid.SetBackgroundColor(tcell.ColorDefault)
dataDir := core.ConfigDir()
err := os.MkdirAll(dataDir, 0700)
if err != nil {
panic(err)
}
header := clock.New("15:04:05", time.Second)
main := editor.New(filepath.Join(dataDir, "main"))
footer := clock.New("2006-01-02", time.Hour)
grid.AddItem(header, 0, 0, 1, 3, 0, 0, false)
grid.AddItem(main.Pages, 1, 1, 1, 1, 0, 0, false)
grid.AddItem(footer, 2, 0, 1, 3, 0, 0, false)
app.EnableMouse(true)
app.SetRoot(grid, true)
app.SetFocus(main.Pages)
go func() {
tick := time.NewTicker(time.Second)
for range tick.C {
app.Draw()
}
}()
err = app.Run()
if err != nil {
panic(err)
}
}