[PATCH] Fix guix locate clear database "no files to search for" error and unnesecary database rebuilding

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Maciej Kalandyk
Owner
unassigned
Submitted by
Maciej Kalandyk
Severity
normal
M
M
Maciej Kalandyk wrote on 28 Oct 2023 19:43
(address . guix-patches@gnu.org)(name . Maciej Kalandyk)(address . m.kalandyk@outlook.com)
AM0PR10MB3586C8F3024F8576EE02F0F980A3A@AM0PR10MB3586.EURPRD10.PROD.OUTLOOK.COM
This patch fixes error with guix locate --clear that causes it to display error when no files are supplied

Change-Id: I0e9ca223d6406c78b0dd8ff93976c3077d89e103
Signed-off-by: Maciej Kalandyk <m.kalandyk@outlook.com>
---
guix/scripts/locate.scm | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)

Toggle diff (51 lines)
diff --git a/guix/scripts/locate.scm b/guix/scripts/locate.scm
index ae64f46896..93faa1aea2 100644
--- a/guix/scripts/locate.scm
+++ b/guix/scripts/locate.scm
@@ -634,6 +634,9 @@ (define-command (guix-locate . args)
(_
(leave (G_ "~a: unknown indexing method~%") method))))))
+ (if (and (null? files) (not (or update? clear?)))
+ (leave (G_ "no files to search for~%")))
+
;; Populate the database if needed.
(let* ((stat (stat database #f))
(age (and stat (file-age stat)))
@@ -649,20 +652,18 @@ (define-command (guix-locate . args)
(if (assoc-ref opts 'stats?)
(print-statistics database)
- (match (call-with-database database
- (lambda (db)
- (append-map (lambda (file)
- (matching-packages db file
- #:glob? glob?))
- files)))
- (()
- (if (null? files)
- (unless update?
- (leave (G_ "no files to search for~%")))
+ (unless (null? files)
+ (match (call-with-database database
+ (lambda (db)
+ (append-map (lambda (file)
+ (matching-packages db file
+ #:glob? glob?))
+ files)))
+ (()
(leave (N_ "file~{ '~a'~} not found in database '~a'~%"
"files~{ '~a'~} not found in database '~a'~%"
(length files))
- files database)))
- (matches
- (leave-on-EPIPE
- (print-matching-results matches))))))))
+ files database))
+ (matches
+ (leave-on-EPIPE
+ (print-matching-results matches)))))))))

base-commit: 6d7e181ba18d11c92409a93936025fb46b9c8171
--
2.41.0
L
L
Ludovic Courtès wrote on 15 Nov 2023 18:36
(name . Maciej Kalandyk)(address . m.kalandyk@outlook.com)
87msve7wbn.fsf@gnu.org
Hi Maciej,

Maciej Kalandyk <m.kalandyk@outlook.com> skribis:

Toggle quote (5 lines)
> This patch fixes error with guix locate --clear that causes it to display error when no files are supplied
>
> Change-Id: I0e9ca223d6406c78b0dd8ff93976c3077d89e103
> Signed-off-by: Maciej Kalandyk <m.kalandyk@outlook.com>

I fixed it slightly differently in
69d9a020949c77c77b449c1faf04397b95eef5b7 and added a test in
‘tests/guix-locate.sh’ so this bug doesn’t come to haunt us again.

Thank you!

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 66799@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 66799
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch