From d8b23b86fa4fe282e35746caa5ad6e3ab396e11d Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Tue, 29 Aug 2017 13:24:27 -0400 Subject: [PATCH] find-todos: allow for search other than TODO like `find-todos -s IDEA` Signed-off-by: Vincent Batts --- cmd/find-todos/main.go | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/cmd/find-todos/main.go b/cmd/find-todos/main.go index 6cbf433..b8ded6c 100644 --- a/cmd/find-todos/main.go +++ b/cmd/find-todos/main.go @@ -10,14 +10,10 @@ import ( "strings" ) -var ( - NoteDir string - flNoteDir *string - flNotePat *string - err error -) - func main() { + var NoteDir string + var err error + if len(os.Getenv("NOTEDIR")) > 0 { NoteDir, err = filepath.Abs(os.Getenv("NOTEDIR")) if err != nil { @@ -27,11 +23,13 @@ func main() { } else { NoteDir = filepath.Join(os.Getenv("HOME"), "Notes") } - flNoteDir = flag.String("d", NoteDir, "directory of notes") - flNotePat = flag.String("p", "Tasks*.md", "file pattern") + + flNoteDir := flag.String("d", NoteDir, "directory of notes") + flNoteFilePat := flag.String("p", "Tasks*.md", "file pattern") + flNoteTodoPat := flag.String("s", "TODO", "search for pattern in files") flag.Parse() - matches, err := filepath.Glob(filepath.Join(*flNoteDir, *flNotePat)) + matches, err := filepath.Glob(filepath.Join(*flNoteDir, *flNoteFilePat)) if err != nil { fmt.Println(err) os.Exit(1) @@ -55,10 +53,10 @@ func main() { os.Exit(1) } count++ - if strings.Contains(line, "TODO") { + if strings.Contains(line, *flNoteTodoPat) { fmt.Printf("%s:%d\t%s\n", filepath.Base(match), count, strings.TrimRight(line, " \n")) trimmed := strings.TrimSpace(line) - if strings.HasSuffix(trimmed, ":") || strings.HasSuffix(trimmed, "TODO") { + if strings.HasSuffix(trimmed, ":") || strings.HasSuffix(trimmed, *flNoteTodoPat) { i := strings.IndexRune(line, rune(trimmed[0])) for { buf, err := rdr.Peek(i + 1)