// TODO implement edit/delete functions package main import ( "flag" "fmt" "issues" "os" tea "github.com/charmbracelet/bubbletea" ) func main() { flag.Parse() arg := flag.Args() var path string if len(arg) == 0 { _, err := os.Stat("issues") if err == nil { if issues.IsIssueCollection("issues") { path = "issues" } else { fmt.Println("Could not load issues directory...") os.Exit(1) } } else { fmt.Println("No issues folder detected.\nNot enough arguments:", arg) os.Exit(1) } } if len(path) == 0 { path = arg[0] } if len(arg) > 1 { fmt.Println("Too many arguments:", arg) os.Exit(1) } fileInfo, err := os.Stat(path) if err == nil { // file exists if fileInfo.IsDir() { // file is dir if !issues.IsIssueCollection(path) && !issues.IsIssue(path) { // file is not issue collection and not issue fmt.Printf("%s is a directory...\n", path) os.Exit(1) } } else { fmt.Printf("%s is an existing file...\n", path) os.Exit(1) } } p := tea.NewProgram( issues.Model{Path: path}, tea.WithAltScreen(), // use the full size of the terminal in its "alternate screen buffer" // tea.WithMouseCellMotion(), // turn on mouse support so we can track the mouse wheel ) if _, e := p.Run(); e != nil { fmt.Println("could not run program:", err) os.Exit(1) } }