diff --git a/private/file-walker.rkt b/private/file-walker.rkt index 573e339..9b89c2f 100644 --- a/private/file-walker.rkt +++ b/private/file-walker.rkt @@ -19,7 +19,8 @@ (let ((delim (if (eq? (system-path-convention-type) 'windows) "\\" "/"))) (string-replace str "/" delim))) -(define (make-file-walker base-path glob-pattern filter-func) +(define (make-file-walker base-path glob-pattern filter-func + #:filename-cleaner [filename-cleaner-func (λ (f) f)]) (let* ((gen (sequence->generator (sequence-filter (λ (p) @@ -40,7 +41,7 @@ (values #f #f #f) (let* ((bd (basedir path)) (bn (format "~a" (basename path))) - (nbn (clean-os-basename bn)) + (nbn (filename-cleaner-func (clean-os-basename bn))) ) (unless (string=? bn nbn) @@ -81,7 +82,7 @@ ) ) -(define (make-file-admin base-path db-store) +(define (make-file-admin base-path db-store #:filename-cleaner [fc-f (λ (f) f)]) (define (file-info-equal? i1 i2) (if (eq? (hash-ref i1 'type) (hash-ref i2 'type)) @@ -181,7 +182,9 @@ ) (set! walker-count (+ walker-count 1)) (let-values (((base-path* path* info*) (file-admin base-path path info))) - (values base-path* path* info*))))) + (values base-path* path* info*))) + #:filename-cleaner fc-f + )) (deleted #f)) (init-db-sweep) @@ -256,4 +259,5 @@ ((string=? stem3 "") "_") (reserved? (string-append "_" stem3)) (else stem3)))) - (string-append stem4 ext))) \ No newline at end of file + (string-append stem4 ext))) +