[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dired-duplicates 2f9735e213 15/57: Implement applying c
From: |
ELPA Syncer |
Subject: |
[elpa] externals/dired-duplicates 2f9735e213 15/57: Implement applying custom file filter functions |
Date: |
Sat, 4 Nov 2023 06:58:27 -0400 (EDT) |
branch: externals/dired-duplicates
commit 2f9735e213127a48f106ade32031177cf7d2047d
Author: Harald Judt <h.judt@gmx.at>
Commit: Harald Judt <h.judt@gmx.at>
Implement applying custom file filter functions
Introduce a new variable for calling custom file filter functions to filter
out
unwanted candidates. For example, these could filter by size or modification
date.
---
find-dupes-dired.el | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/find-dupes-dired.el b/find-dupes-dired.el
index 92dd78843d..3783dbdf7d 100644
--- a/find-dupes-dired.el
+++ b/find-dupes-dired.el
@@ -32,6 +32,15 @@ ascending or descending order."
:type '(choice (const :tag "Ascending" :value <)
(const :tag "Descending" :value >)))
+(defcustom find-dupes-file-filter-functions
+ nil
+ "Filter functions applied to all files found in a directory. A
+filter function must accept as its single argument the file and
+return boolean t if the file matches a criteria, otherwise nil."
+ :group 'find-dupes-dired
+ :tag "File filter functions"
+ :type 'hook)
+
(defvar find-dupes-directories nil
"List of directories that will be searched for duplicate files.")
@@ -66,12 +75,20 @@ ascending or descending order."
(when find-dupes-use-separator-file
(find-dupes--remove-separator-file))))
+(defun find-dupes--apply-file-filter-functions (files)
+ (if (and find-dupes-file-filter-functions files)
+ (dolist (filter-func find-dupes-file-filter-functions files)
+ (setf files (delete-if-not filter-func files)))
+ files))
+
(defun find-dupes--duplicate-files (directories)
"Given one or more root directories, search below the directories
for duplicate files. Returns a hash-table with the checksums as
keys and a list of size and duplicate files as values."
- (cl-loop with files = (mapcan #'(lambda (d) (directory-files-recursively d
".*"))
- (ensure-list directories))
+ (cl-loop with files = (find-dupes--apply-file-filter-functions
+ (mapcan #'(lambda (d)
+ (directory-files-recursively d ".*"))
+ (ensure-list directories)))
and same-size-table = (make-hash-table)
and checksum-table = (make-hash-table :test 'equal)
for f in files
- [elpa] externals/dired-duplicates bff2363b18 02/57: Make find-dupes-dired accept multiple directories as input, (continued)
- [elpa] externals/dired-duplicates bff2363b18 02/57: Make find-dupes-dired accept multiple directories as input, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 0dc7295626 03/57: Handle case when no duplicate files found, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 24b57254eb 05/57: Print message when reverting dired buffer, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates cab41ca722 08/57: Remove commented test calls, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates c2cb23cd0c 07/57: Allow sorting by filesize in ascending or descending order, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 194d22be42 10/57: Reformat custom value definitions, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 0d71465d6a 13/57: Make the use of the dummy separator file optional, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates b8df43a6a2 12/57: Always properly clean up separator file, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 6ba3c3bfee 11/57: Fix custom definition of find-dupes-size-comparison-function, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 40402013cd 14/57: Fix find-dupes--duplicate-files docstring, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 2f9735e213 15/57: Implement applying custom file filter functions,
ELPA Syncer <=
- [elpa] externals/dired-duplicates 76aef0a5bc 19/57: Rename package to find-duplicates, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates c94b14724a 21/57: flymake: Fix docstrings issues, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates b8fa486b80 22/57: flymake: Fix unused variables, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 86a12647a5 23/57: flymake: Fix unknown and deprecated function warnings, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 193e498e5d 25/57: Fix indentation and find-duplicates-with-separator-file macro var names, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 0dc415a2b1 28/57: Rename source file to match package name, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates ad2855a5e0 29/57: Add package information and GPL-3 license, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 6508b208e2 30/57: Add option to search directories recursively or not, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 03ad95f3a9 31/57: Add README.org, ELPA Syncer, 2023/11/04
- [elpa] externals/dired-duplicates 4cfe600a15 36/57: Use user-error instead of error in find-duplicates-checksum-file, ELPA Syncer, 2023/11/04