diff options
-rw-r--r-- | guix/gexp.scm | 1 | ||||
-rw-r--r-- | guix/self.scm | 10 |
2 files changed, 10 insertions, 1 deletions
diff --git a/guix/gexp.scm b/guix/gexp.scm index 9e193c76c4..510a1d54c3 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -51,6 +51,7 @@ local-file-absolute-file-name local-file-name local-file-recursive? + local-file-select? plain-file plain-file? diff --git a/guix/self.scm b/guix/self.scm index a9568049b2..60fe6e6b01 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -213,7 +213,15 @@ record with the new file name." ;; itself. (local-file (string-append item "/" file) #:recursive? recursive?)) - ;; TODO: Add 'local-file?' case. + ((? local-file? base) + ;; Likewise, but with a <local-file>. + (if (local-file-recursive? base) + (local-file (string-append (local-file-absolute-file-name base) + "/" file) + (basename file) + #:recursive? recursive? + #:select? (local-file-select? base)) + (file-append base file))) (_ ;; In this case, anything that refers to the result also depends on ITEM, ;; which isn't great. |