cl-grep

Simple implementation of grep
Log | Files | Refs

commit 8e7a00c620592776d3c1534ad3945200a4327ef2
parent 70a7469d7ad3f2a9b05f0de06f2d1682609ba737
Author: ChanderG <[email protected]>
Date:   Wed,  3 Dec 2025 19:27:26 +0530

pull out blacklists into global variables

instead of redefining for every iteration

Diffstat:
Mgrep.lisp | 17+++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/grep.lisp b/grep.lisp @@ -1,5 +1,9 @@ (in-package :cl-grep) +(defparameter +file-lc-blacklist+ '(#\~ #\#)) +(defparameter +file-ext-blacklist+ '("pwd")) +(defparameter +dir-blacklist+ '(".git" ".venv")) + (defparameter *match* nil) (defparameter *queue* nil) @@ -73,14 +77,12 @@ (defun queue-file (file) (lo "Visiting file: ~a" file) (let* ((name (pu:file-name file)) - (blacklist (list #\~ #\#)) (lc (char name (- (length name) 1)))) - (when (member lc blacklist) + (when (member lc +file-lc-blacklist+) (lo "Skipping ignorable file: ~a" file) (return-from queue-file nil)) - (let ((blacklist (list "pwd"))) - (when (member (pathname-type file) blacklist :test #'equalp) - (return-from queue-file nil))) + (when (member (pathname-type file) +file-ext-blacklist+ :test #'equalp) + (return-from queue-file nil)) ;; do the actual thing here (lq:push-queue file *queue*))) @@ -93,9 +95,8 @@ (handler-case (progn ;; check if we should visit this dir - (let ((dirname (pu:directory-name dir)) - (blacklist (list ".git" ".venv"))) - (when (member dirname blacklist :test #'equalp) + (let ((dirname (pu:directory-name dir))) + (when (member dirname +dir-blacklist+ :test #'equalp) (lo "Skipping dir: ~a" dir) (return-from fs-walker nil))) ;; process files in this dir