1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package main
- import (
- _ "embed"
- "fmt"
- "log"
- "os"
- "strconv"
- itashi "git.aetherial.dev/aeth/itashi/pkg"
- tea "github.com/charmbracelet/bubbletea"
- )
- const ADD_TASK = "add"
- const DEL_TASK = "del"
- const DONE_TASK = "done"
- //go:embed banner.txt
- var banner []byte
- func main() {
- args := os.Args
- if len(args) >= 2 {
- action := args[1]
- shelf := itashi.NewFilesystemShelf(itashi.GetDefualtSave())
- switch action {
- case ADD_TASK:
- itashi.AddTaskPrompt(shelf)
- os.Exit(0)
- case DEL_TASK:
- id, err := strconv.Atoi(args[2])
- if err != nil {
- log.Fatal("ID passed was not a valid integer: ", err)
- }
- shelf.DeleteTask(id)
- os.Exit(0)
- case DONE_TASK:
- id, err := strconv.Atoi(args[2])
- if err != nil {
- log.Fatal("ID passed was not a valid integer: ", err)
- }
- shelf.MarkDone(id)
- fmt.Print("よくできた! Good job!\n")
- os.Exit(0)
- }
- }
- fmt.Printf("%+v\n", string(banner))
- p := tea.NewProgram(itashi.InitialModel())
- if _, err := p.Run(); err != nil {
- fmt.Printf("Alas, there's been an error: %v", err)
- os.Exit(1)
- }
- }
|