cl-grep

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit eba34d94a1f2f6c7622fed94f57938e65a8a8676
parent a44828d0acf4d6a92b6d15cc5c802082be08c561
Author: ChanderG <[email protected]>
Date:   Sat, 29 Nov 2025 11:24:27 +0530

setup queue to manage tasks

Diffstat:
Mgrep.asd | 3++-
Mgrep.lisp | 11+++++++++--
Mpackage.lisp | 3++-
3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/grep.asd b/grep.asd @@ -7,7 +7,8 @@ :depends-on (:uiop :filesystem-utils :pathname-utils - :vom) + :vom + :lparallel) :build-operation "program-op" :build-pathname "cl-grep" :entry-point "cl-grep:main") diff --git a/grep.lisp b/grep.lisp @@ -1,5 +1,9 @@ (in-package :cl-grep) +(defparameter *queue* nil) +(defun setup-task-queue () + (setf *queue* (lq:make-queue))) + (defun queue-file (file) (lo "Visiting file: ~a" file) (let* ((name (pu:file-name file)) @@ -7,8 +11,9 @@ (lc (char name (- (length name) 1)))) (when (member lc blacklist) (lo "Skipping ignorable file: ~a" file) - (return-from queue-file nil)))) + (return-from queue-file nil)) ;; do the actual thing here + (lq:push-queue file *queue*))) (defun fs-walker (dir) (lo "Visiting dir: ~a" dir) @@ -27,7 +32,9 @@ ;; Main entrypoint for the grep functionality (defun grep-launcher (str dir) - (fs-walker dir)) + (setup-task-queue) + (fs-walker dir) + (lo "Num items in task queue: ~a" (lq:queue-count *queue*))) (defun main () (log-setup) diff --git a/package.lisp b/package.lisp @@ -1,5 +1,6 @@ (defpackage cl-grep (:use :cl) (:local-nicknames (:fsu :org.shirakumo.filesystem-utils) - (:pu :org.shirakumo.pathname-utils)) + (:pu :org.shirakumo.pathname-utils) + (:lq :lparallel.queue)) (:export #:main))