summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-03-07 00:36:14 +0100
committerLudovic Courtès <ludo@gnu.org>2013-03-07 00:36:14 +0100
commit6ba9dd813db7c528cb99e442a066bcf832f27330 (patch)
tree58aa2dec324b465c95de3e5c444028c5578bb15e
parent02065130de33e990969fe9b7cc19b9b1c24f3ff7 (diff)
downloadguix-6ba9dd813db7c528cb99e442a066bcf832f27330.tar.gz
Revert "utils: Add 'wrap-program'."
This reverts commit 02065130de33e990969fe9b7cc19b9b1c24f3ff7.
-rw-r--r--guix/build/utils.scm68
1 files changed, 1 insertions, 67 deletions
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index 7391f54e77..6921e31bdd 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -1,6 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,8 +49,7 @@
             patch-shebang
             patch-makefile-SHELL
             fold-port-matches
-            remove-store-references
-            wrap-program))
+            remove-store-references))
 
 
 ;;;
@@ -607,70 +605,6 @@ known as `nuke-refs' in Nixpkgs."
                              (put-u8 out (char->integer char))
                              result))))))
 
-(define* (wrap-program prog #:rest vars)
-  "Rename PROG to .PROG-real and make PROG a wrapper.  VARS should look like
-this:
-
-  '(VARIABLE DELIMITER POSITION LIST-OF-DIRECTORIES)
-
-where DELIMITER is optional.  ':' will be used if DELIMITER is not given.
-
-For example, this command:
-
-  (wrap-program \"foo\"
-                '(\"PATH\" \":\" = (\"/nix/.../bar/bin\"))
-                '(\"CERT_PATH\" suffix (\"/nix/.../baz/certs\"
-                                        \"/qux/certs\")))
-
-will copy 'foo' to '.foo-real' and create the file 'foo' with the following
-contents:
-
-  #!location/of/bin/bash
-  export PATH=\"/nix/.../bar/bin\"
-  export CERT_PATH=\"$CERT_PATH${CERT_PATH:+:}/nix/.../baz/certs:/qux/certs\"
-  exec location/of/.foo-real
-
-This is useful for scripts that expect particular programs to be in $PATH, for
-programs that expect particular shared libraries to be in $LD_LIBRARY_PATH, or
-modules in $GUILE_LOAD_PATH, etc."
-  (let ((prog-real (string-append "." prog "-real"))
-        (prog-tmp  (string-append "." prog "-tmp")))
-    (define (export-variable lst)
-      ;; Return a string that exports an environment variable.
-      (match lst
-        ((var sep '= rest)
-         (format #f "export ~a=\"~a\""
-                 var (string-join rest sep)))
-        ((var sep 'prefix rest)
-         (format #f "export ~a=\"~a${~a~a+~a}$~a\""
-                 var (string-join rest sep) var sep sep var))
-        ((var sep 'suffix rest)
-         (format #f "export ~a=\"$~a${~a~a+~a}~a\""
-                 var var var sep sep (string-join rest sep)))
-        ((var '= rest)
-         (format #f "export ~a=\"~a\""
-                 var (string-join rest ":")))
-        ((var 'prefix rest)
-         (format #f "export ~a=\"~a${~a:+:}$~a\""
-                 var (string-join rest ":") var var))
-        ((var 'suffix rest)
-         (format #f "export ~a=\"$~a${~a:+:}~a\""
-                 var var var (string-join rest ":")))))
-
-    (copy-file prog prog-real)
-
-    (with-output-to-file prog-tmp
-      (lambda ()
-        (format #t
-                "#!~a~%~a~%exec ~a~%"
-                (which "bash")
-                (string-join (map export-variable vars)
-                             "\n")
-                (canonicalize-path prog-real))))
-
-    (chmod prog-tmp #o755)
-    (rename-file prog-tmp prog)))
-
 ;;; Local Variables:
 ;;; eval: (put 'call-with-output-file/atomic 'scheme-indent-function 1)
 ;;; eval: (put 'with-throw-handler 'scheme-indent-function 1)