summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-11-15 18:12:24 +0100
committerLudovic Courtès <ludo@gnu.org>2023-11-15 18:29:37 +0100
commit69d9a020949c77c77b449c1faf04397b95eef5b7 (patch)
tree623a437efa4b347d64973f0ca875d4396ee308f9
parent3fe31e37a9c92a413530cb86a58921af6b407706 (diff)
locate: Accept ‘--clear’ without additional arguments.
Fixes a bug whereby ‘guix locate --clear’ would end with the “no files to search for” error. Fixes <https://issues.guix.gnu.org/66799>. * guix/scripts/locate.scm (guix-locate): Do not emit “no files to search for” error when 'clear? is set in OPTS. * tests/guix-locate.sh: Test it. Reported-by: Maciej Kalandyk <m.kalandyk@outlook.com> Change-Id: Ib8fa125c18481d7f5408bd89df9503713527641d
-rw-r--r--guix/scripts/locate.scm2
-rwxr-xr-xtests/guix-locate.sh6
2 files changed, 7 insertions, 1 deletions
diff --git a/guix/scripts/locate.scm b/guix/scripts/locate.scm
index ae64f46896..92af3509bf 100644
--- a/guix/scripts/locate.scm
+++ b/guix/scripts/locate.scm
@@ -657,7 +657,7 @@ Locate FILE and return the list of packages that contain it.\n"))
files)))
(()
(if (null? files)
- (unless update?
+ (unless (or update? (assoc-ref opts 'clear?))
(leave (G_ "no files to search for~%")))
(leave (N_ "file~{ '~a'~} not found in database '~a'~%"
"files~{ '~a'~} not found in database '~a'~%"
diff --git a/tests/guix-locate.sh b/tests/guix-locate.sh
index 43f8ba53b0..de0ea5769d 100755
--- a/tests/guix-locate.sh
+++ b/tests/guix-locate.sh
@@ -70,3 +70,9 @@ then
$cmd_store guile | grep "$(guix build guile-bootstrap)/bin/guile"
$cmd_store boot-9.scm | grep ^guile-bootstrap
fi
+
+# The command below is an error: "no files to search for"...
+guix locate && false
+
+# ... but this one is fine.
+guix locate --clear