summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-11-06 15:48:04 +0100
committerLudovic Courtès <ludo@gnu.org>2018-11-06 17:00:02 +0100
commite3744779aabc4badd992f52ebaa085e6d68a2eeb (patch)
tree16c6c79d3aed959c177bb6272b8d0df77b919456
parenta2f99207dd318c0082b3aabe1384b0a7e427df4e (diff)
downloadguix-e3744779aabc4badd992f52ebaa085e6d68a2eeb.tar.gz
self: Install shell completion files.
* guix/self.scm (miscellaneous-files): New procedure.
(whole-package): Remove #:substitute-keys, add #:miscellany.
[build]: Remove code for SUBSTITUTE-KEYS and add code to copy MISCELLANY
to OUTPUT.
(compiled-guix): Adjust call to 'whole-package'.
-rw-r--r--guix/self.scm34
1 files changed, 24 insertions, 10 deletions
diff --git a/guix/self.scm b/guix/self.scm
index 43223972c6..96fef44e78 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -405,11 +405,28 @@ load path."
                       (apply guix-main (command-line))))
                 #:guile guile))
 
+(define (miscellaneous-files source)
+  "Return data files taken from SOURCE."
+  (file-mapping "guix-misc"
+                `(("etc/bash_completion.d/guix"
+                   ,(file-append* source "/etc/completion/bash/guix"))
+                  ("etc/bash_completion.d/guix-daemon"
+                   ,(file-append* source "/etc/completion/bash/guix-daemon"))
+                  ("share/zsh/site-functions/_guix"
+                   ,(file-append* source "/etc/completion/zsh/_guix"))
+                  ("share/fish/vendor_completions.d/guix.fish"
+                   ,(file-append* source "/etc/completion/fish/guix.fish"))
+                  ("share/guix/hydra.gnu.org.pub"
+                   ,(file-append* source
+                                  "/etc/substitutes/hydra.gnu.org.pub"))
+                  ("share/guix/berlin.guixsd.org.pub"
+                   ,(file-append* source "/etc/substitutes/berlin.guixsd.org.pub")))))
+
 (define* (whole-package name modules dependencies
                         #:key
                         (guile-version (effective-version))
                         compiled-modules
-                        info daemon substitute-keys
+                        info daemon miscellany
                         guile
                         (command (guix-command modules
                                                #:dependencies dependencies
@@ -424,6 +441,7 @@ assumed to be part of MODULES."
                  (with-imported-modules '((guix build utils))
                    #~(begin
                        (use-modules (guix build utils))
+
                        (mkdir-p (string-append #$output "/bin"))
                        (symlink #$command
                                 (string-append #$output "/bin/guix"))
@@ -432,13 +450,6 @@ assumed to be part of MODULES."
                          (symlink (string-append #$daemon "/bin/guix-daemon")
                                   (string-append #$output "/bin/guix-daemon")))
 
-                       (when #$substitute-keys
-                         (mkdir-p (string-append #$output "/share/guix"))
-                         (copy-recursively #$substitute-keys
-                                           (string-append #$output
-                                                          "/share/guix")
-                                           #:log (%make-void-port "w")))
-
                        (let ((modules (string-append #$output
                                                      "/share/guile/site/"
                                                      (effective-version)))
@@ -450,6 +461,10 @@ assumed to be part of MODULES."
                                     (string-append #$output
                                                    "/share/info"))))
 
+                       (when #$miscellany
+                         (copy-recursively #$miscellany #$output
+                                           #:log (%make-void-port "w")))
+
                        ;; Object files.
                        (when #$compiled-modules
                          (let ((modules (string-append #$output "/lib/guile/"
@@ -675,8 +690,7 @@ assumed to be part of MODULES."
                                                'guix-daemon)
 
                           #:info (info-manual source)
-                          #:substitute-keys (file-append* source
-                                                          "etc/substitutes")
+                          #:miscellany (miscellaneous-files source)
                           #:guile-version guile-version)))
         ((= 0 pull-version)
          ;; Legacy 'guix pull': return the .scm and .go files as one