| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 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)
- }
- }
|