diff --git a/main.go b/main.go index 59ebd2b..c070018 100644 --- a/main.go +++ b/main.go @@ -1,10 +1,15 @@ package main import ( + "bytes" + "errors" "flag" "fmt" + "log" "os" "os/exec" + "strings" + "time" ) func main() { @@ -14,10 +19,12 @@ func main() { func ParseFlags(sb string) { note := sb + "/notes" - // daily := sb + "/periodic/daily" - // templates := sb + "/templates" + daily := sb + "/periodic/daily" + templates := sb + "/templates" quickPtr := flag.Bool("q", false, "Open quick file for notes") + listPtr := flag.Bool("l", false, "List files in notes directory") + dailyPtr := flag.Bool("d", false, "Create/Edit daily journal entry") flag.Parse() @@ -29,6 +36,41 @@ func ParseFlags(sb string) { os.Exit(0) } + if *listPtr { + files, err := os.ReadDir(note) + if err != nil { + log.Fatal(err) + } + + for _, f := range files { + file := f.Name() + fmt.Println(strings.ReplaceAll(file, ".md", "")) + } + os.Exit(0) + } + + if *dailyPtr { + date := time.Now().Local().Format("2006-01-02") + file := daily + "/" + date + ".md" + dailyTemplate := templates + "/daily.md" + + // If the file doesn't exist, create it + if _, err := os.Stat(file); errors.Is(err, os.ErrNotExist) { + // Read template file + t, _ := os.ReadFile(dailyTemplate) + + // Replace yesterday and tomorrow with specific dates + t = bytes.ReplaceAll(t, []byte("YESTERDAY"), []byte(time.Now().Local().AddDate(0, 0, -1).Format("2006-01-02"))) + t = bytes.ReplaceAll(t, []byte("TOMORROW"), []byte(time.Now().Local().AddDate(0, 0, 1).Format("2006-01-02"))) + + // write the file + os.WriteFile(file, t, 0644) + } + + OpenNvim(file) + os.Exit(0) + } + if len(fileName) == 0 { fmt.Println("You didn't specify a note name") os.Exit(1)