summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-03-16 22:46:43 +0100
committerLudovic Courtès <ludo@gnu.org>2017-03-16 22:50:15 +0100
commitdb3f2b61adfe56d69029ec5f6d962462a50a1f33 (patch)
treedf687577323e123a38559cef6a54d3d374941059
parent9e84ea3673f77ebe5c5e9ce39fbcdb6d7bc8a06f (diff)
downloadguix-db3f2b61adfe56d69029ec5f6d962462a50a1f33.tar.gz
pack: Allow for "-S /opt/foo=".
Reported by Andy Wingo.

* guix/scripts/pack.scm (%options): Use 'string-split' instead of
'string-tokenize'.
-rw-r--r--guix/scripts/pack.scm7
1 files changed, 4 insertions, 3 deletions
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index edeb82fafd..74d4ee6d4d 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -283,9 +283,10 @@ with COMPRESSOR.  It can be passed to 'docker load'."
                                result)))
          (option '(#\S "symlink") #t #f
                  (lambda (opt name arg result)
-                   (match (string-tokenize arg
-                                           (char-set-complement
-                                            (char-set #\=)))
+                   ;; Note: Using 'string-split' allows us to handle empty
+                   ;; TARGET (as in "/opt/guile=", meaning that /opt/guile is
+                   ;; a symlink to the profile) correctly.
+                   (match (string-split arg (char-set #\=))
                      ((source target)
                       (let ((symlinks (assoc-ref result 'symlinks)))
                         (alist-cons 'symlinks