]> njoseph.me Git - experiments.git/blobdiff - tag_find/tag-find.rkt
tag_find: Racket implementation (non-recursive)
[experiments.git] / tag_find / tag-find.rkt
diff --git a/tag_find/tag-find.rkt b/tag_find/tag-find.rkt
new file mode 100644 (file)
index 0000000..faf6662
--- /dev/null
@@ -0,0 +1,28 @@
+#lang racket
+
+(define tag "tag")
+
+(define start-sequence "#+")
+
+(define tag-match? ( lambda (line)
+  (and (string-prefix? line start-sequence)
+       (string-contains? line tag))))
+
+;; TODO Make recursive
+(define files
+ (filter file-exists? (directory-list)))
+
+(define (find-file files)
+  (when (not (empty? files))
+    (define file (first files))
+    (define (find-line lines)
+      (when (not (empty? lines))
+        (if (tag-match? (first lines))
+            (displayln file)
+            (find-line (rest lines)))
+        ))
+    (find-line (file->lines file))
+    (find-file (rest files))
+  ))
+
+(find-file files)