[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dired-duplicates 76aef0a5bc 19/57: Rename package to fi
|
From: |
ELPA Syncer |
|
Subject: |
[elpa] externals/dired-duplicates 76aef0a5bc 19/57: Rename package to find-duplicates |
|
Date: |
Sat, 4 Nov 2023 06:58:27 -0400 (EDT) |
branch: externals/dired-duplicates
commit 76aef0a5bc5f8e743deaaf7fc4bcce33f83bb202
Author: Harald Judt <h.judt@gmx.at>
Commit: Harald Judt <h.judt@gmx.at>
Rename package to find-duplicates
There already exists a package named find-dupes-dired, so rename it to
avoid naming clashes.
---
find-dupes-dired.el | 109 ++++++++++++++++++++++++++--------------------------
1 file changed, 55 insertions(+), 54 deletions(-)
diff --git a/find-dupes-dired.el b/find-dupes-dired.el
index 1bca847f05..31e9ea12d9 100644
--- a/find-dupes-dired.el
+++ b/find-dupes-dired.el
@@ -1,61 +1,61 @@
(require 'cl-lib)
-(defgroup find-dupes-dired
+(defgroup find-duplicates
nil
"Find duplicate files on local and/or remote filesystems."
- :tag "Find Dupes"
+ :tag "Find Duplicate Files"
:group 'dired)
-(defcustom find-dupes-use-separators
+(defcustom find-duplicates-use-separators
t
"Whether to use a separator dummy file for separating search results."
- :group 'find-dupes-dired
+ :group 'find-duplicates
:tag "Separate search results"
:type 'boolean)
-(defcustom find-dupes-separator-file
+(defcustom find-duplicates-separator-file
(concat "/tmp/-" (make-string 40 ?-))
"Path and name of the separator file used for making search
results easier to discern. It will be created immediately before
and deleted as soon as possible after the search operation
finishes."
- :group 'find-dupes-dired
+ :group 'find-duplicates
:tag "Separator dummy file"
:type 'string)
-(defcustom find-dupes-checksum-exec
+(defcustom find-duplicates-checksum-exec
"sha256sum"
"Name of the executable used for creating file checksums for
comparison."
- :group 'find-dupes-dired
+ :group 'find-duplicates
:tag "Checksum executable"
:type 'string)
-(defcustom find-dupes-size-comparison-function
+(defcustom find-duplicates-size-comparison-function
'<
"The comparison function used for sorting grouped results in
ascending or descending order."
- :group 'find-dupes-dired
+ :group 'find-duplicates
:tag "Ascending or descending file size sort order"
:type '(choice (const :tag "Ascending" :value <)
(const :tag "Descending" :value >)))
-(defcustom find-dupes-file-filter-functions
+(defcustom find-duplicates-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
+ :group 'find-duplicates
:tag "File filter functions"
:type 'hook)
-(defvar find-dupes-directories nil
+(defvar find-duplicates-directories nil
"List of directories that will be searched for duplicate files.")
-(defun find-dupes-checksum-file (file)
- "Create a checksum for `file', using executable defined by
`find-dupes-checksum-exec'."
+(defun find-duplicates-checksum-file (file)
+ "Create a checksum for `file', using executable defined by
`find-duplicates-checksum-exec'."
(let* ((default-directory (file-name-directory (expand-file-name file)))
- (exec (executable-find find-dupes-checksum-exec t)))
+ (exec (executable-find find-duplicates-checksum-exec t)))
(unless exec
(error "Checksum program %s not found in exec-path!" exec))
(first (split-string
@@ -64,36 +64,36 @@ return boolean t if the file matches a criteria, otherwise
nil."
nil
t))))
-(defun find-dupes--ensure-separator-file ()
- "Ensure that the separator file specified by `find-dupes-separator-file'
exists."
- (unless (file-exists-p find-dupes-separator-file)
- (make-empty-file find-dupes-separator-file)))
+(defun find-duplicates--ensure-separator-file ()
+ "Ensure that the separator file specified by
`find-duplicates-separator-file' exists."
+ (unless (file-exists-p find-duplicates-separator-file)
+ (make-empty-file find-duplicates-separator-file)))
-(defun find-dupes--remove-separator-file ()
- "Remove the separator file specified by `find-dupes-separator-file'."
- (when (file-exists-p find-dupes-separator-file)
- (delete-file find-dupes-separator-file nil)))
+(defun find-duplicates--remove-separator-file ()
+ "Remove the separator file specified by `find-duplicates-separator-file'."
+ (when (file-exists-p find-duplicates-separator-file)
+ (delete-file find-duplicates-separator-file nil)))
-(defmacro find-dupes-with-separator-file (&rest rest)
+(defmacro find-duplicates-with-separator-file (&rest rest)
`(unwind-protect
(progn
- (when find-dupes-use-separators
- (find-dupes--ensure-separator-file))
+ (when find-duplicates-use-separators
+ (find-duplicates--ensure-separator-file))
,@rest)
- (when find-dupes-use-separators
- (find-dupes--remove-separator-file))))
+ (when find-duplicates-use-separators
+ (find-duplicates--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)
+(defun find-duplicates--apply-file-filter-functions (files)
+ (if (and find-duplicates-file-filter-functions files)
+ (dolist (filter-func find-duplicates-file-filter-functions files)
(setf files (delete-if-not filter-func files)))
files))
-(defun find-dupes--duplicate-files (directories)
+(defun find-duplicates--find-and-filter-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 = (find-dupes--apply-file-filter-functions
+ (cl-loop with files = (find-duplicates--apply-file-filter-functions
(mapcan #'(lambda (d)
(directory-files-recursively d ".*"))
(ensure-list directories)))
@@ -107,7 +107,7 @@ keys and a list of size and duplicate files as values."
(cl-loop for size being the hash-key in same-size-table using
(hash-value same-size-files)
if (> (length same-size-files) 1) do
(cl-loop for f in same-size-files
- for checksum = (find-dupes-checksum-file f)
+ for checksum = (find-duplicates-checksum-file f)
do (setf (gethash checksum checksum-table)
(append (gethash checksum
checksum-table) (list f)))))
(cl-loop with size
@@ -120,53 +120,54 @@ keys and a list of size and duplicate files as values."
(remhash checksum checksum-table)))
(cl-return checksum-table)))
-(defun find-dupes--generate-dired-list (&optional directories)
- "Generate a list of grouped duplicate files, separated by a
-separator file specified by `find-dupes-separator-file'."
- (cl-loop with dupes-table = (find-dupes--duplicate-files (or directories
-
find-dupes-directories))
+(defun find-duplicates--generate-dired-list (&optional directories)
+ "Generate a list of grouped duplicate files, optionally separated
+by a separator file specified by `find-duplicates-separator-file'."
+ (cl-loop with dupes-table = (find-duplicates--find-and-filter-files
+ (or directories
+ find-duplicates-directories))
with sorted-sums = (cl-sort
(cl-loop for k being the hash-key in
dupes-table using (hash-value v)
collect (list k (first v)))
- find-dupes-size-comparison-function
+ find-duplicates-size-comparison-function
:key #'second)
for (checksum) in sorted-sums
append (rest (gethash checksum dupes-table))
- when find-dupes-use-separators append (list
find-dupes-separator-file)))
+ when find-duplicates-use-separators append (list
find-duplicates-separator-file)))
-(defun find-dupes-revert-function (&optional arg noconfirm)
- "Revert function used instead of `dired-revert' for dired buffers generated
by find-dupes."
+(defun find-duplicates-revert-function (&optional arg noconfirm)
+ "Revert function used instead of `dired-revert' for dired buffers generated
by find-duplicates."
(message "Looking for remaining duplicate files...")
(setq-local dired-directory
(append (list (first dired-directory))
- (find-dupes--generate-dired-list)))
+ (find-duplicates--generate-dired-list)))
(message "Reverting buffer complete.")
- (find-dupes-with-separator-file
+ (find-duplicates-with-separator-file
(dired-revert)))
;;;###autoload
-(defun find-dupes-dired (directories)
+(defun find-duplicates-dired (directories)
"Find a list of duplicate files inside one or more directories
and show them in a dired buffer."
(interactive (list (completing-read-multiple "Directories: "
#'read-file-name-internal
#'file-directory-p
t
- nil
+ default-directory
nil
default-directory)))
(let ((default-directory "/")
(truncated-dirs (truncate-string-to-width (string-join directories ",
") 40 0 nil t)))
(message "Finding duplicate files in %s..." truncated-dirs)
- (if-let ((results (find-dupes--generate-dired-list directories)))
+ (if-let ((results (find-duplicates--generate-dired-list directories)))
(progn
(message "Finding duplicate files in %s completed." truncated-dirs)
- (find-dupes-with-separator-file
+ (find-duplicates-with-separator-file
(dired (cons "/" results))
- (setq-local find-dupes-directories directories)
- (setq-local revert-buffer-function 'find-dupes-revert-function)))
+ (setq-local find-duplicates-directories directories)
+ (setq-local revert-buffer-function
'find-duplicates-revert-function)))
(message "No duplicate files found in %s." truncated-dirs))))
-(provide 'find-dupes-dired)
+(provide 'find-duplicates)
-;;; find-dupes-dired.el ends here
+;;; find-duplicates.el ends here
- [elpa] externals/dired-duplicates 0dc7295626 03/57: Handle case when no duplicate files found, (continued)
- [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, 2023/11/04
- [elpa] externals/dired-duplicates 76aef0a5bc 19/57: Rename package to find-duplicates,
ELPA Syncer <=
- [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
- [elpa] externals/dired-duplicates b4a7b0a3e7 38/57: Lower required emacs version to 27.1, ELPA Syncer, 2023/11/04