random-utils/cmd/next-note/main.go

43 lines
936 B
Go

package main
import (
"flag"
"fmt"
"path"
"time"
)
var (
flDir = flag.String("dir", "", "Base directory for tasks")
flDate = flag.Bool("d", false, "print current date")
flPrevWeek = flag.Bool("p", false, "print previous week's filename")
flCurrWeek = flag.Bool("c", false, "print current week's filename")
)
var FileDate = "20060102"
func main() {
flag.Parse()
if *flDate {
// this intentionally has no '\n'
fmt.Printf("## %s", time.Now().Format(time.UnixDate))
return
}
var sunday int
t := time.Now()
if *flCurrWeek {
sunday = -1 * int(t.Weekday())
} else if *flPrevWeek {
sunday = -1*int(t.Weekday()) - 7
} else {
sunday = -1*int(t.Weekday()) + 7
}
saturday := sunday + 6
startDate := t.AddDate(0, 0, sunday).Format(FileDate)
endDate := t.AddDate(0, 0, saturday).Format(FileDate)
filename := fmt.Sprintf("Tasks-%s-%s.md", startDate, endDate)
fmt.Println(path.Join(*flDir, filename))
}