summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix/scripts/shell.scm4
1 files changed, 3 insertions, 1 deletions
diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm
index 1b42cc2af0..d67152cef7 100644
--- a/guix/scripts/shell.scm
+++ b/guix/scripts/shell.scm
@@ -374,7 +374,9 @@ return #f and #f."
   (define (key->file key)
     (string-append (%profile-cache-directory) "/" key))
 
-  (let loop ((opts opts)
+  ;; A given key such as 'system might appear more than once in OPTS, so
+  ;; process it backwards so the last occurrence "wins".
+  (let loop ((opts (reverse opts))
              (system (%current-system))
              (file #f)
              (specs '()))