Browse Source
Replace individual scripts with master 'guix' script.
Replace individual scripts with master 'guix' script.
* scripts/guix.in: New script. * Makefile.am (bin_SCRIPTS): Add 'scripts/guix'. Remove 'guix-build', 'guix-download', 'guix-import', 'guix-package', and 'guix-gc'. (MODULES): Add 'guix/scripts/build.scm', 'guix/scripts/download.scm', 'guix/scripts/import.scm', 'guix/scripts/package.scm', and 'guix/scripts/gc.scm'. * configure.ac (AC_CONFIG_FILES): Add 'scripts/guix'. Remove 'guix-build', 'guix-download', 'guix-import', 'guix-package', and 'guix-gc'. * guix-build.in, guix-download.in, guix-gc.in, guix-import.in, guix-package.in: Remove shell script boilerplate. Move to guix-COMMAND.in to guix/scripts/COMMAND.scm. Rename module from (guix-COMMAND) to (guix scripts COMMAND). Change "guix-COMMAND" to "guix COMMAND" in usage help string. * pre-inst-env.in: Add "@abs_top_builddir@/scripts" to the front of $PATH. Export $GUIX_UNINSTALLED. * tests/guix-build.sh, tests/guix-daemon.sh, tests/guix-download.sh, tests/guix-gc.sh, tests/guix-package.sh: Use "guix COMMAND" instead of "guix-COMMAND". * doc/guix.texi: Replace all occurrences of "guix-COMMAND" with "guix COMMAND". * po/POTFILES.in: Update.version-0.8.3

committed by
Ludovic Courtès

18 changed files with 227 additions and 208 deletions
-
6.gitignore
-
11Makefile.am
-
9configure.ac
-
82doc/guix.texi
-
17guix/scripts/build.scm
-
17guix/scripts/download.scm
-
22guix/scripts/gc.scm
-
17guix/scripts/import.scm
-
17guix/scripts/package.scm
-
38guix/ui.scm
-
8po/POTFILES.in
-
11pre-inst-env.in
-
56scripts/guix.in
-
26tests/guix-build.sh
-
6tests/guix-daemon.sh
-
12tests/guix-download.sh
-
24tests/guix-gc.sh
-
56tests/guix-package.sh
@ -0,0 +1,56 @@ |
|||
#!@GUILE@ -s |
|||
-*- scheme -*- |
|||
!# |
|||
;;; GNU Guix --- Functional package management for GNU |
|||
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org> |
|||
;;; |
|||
;;; This file is part of GNU Guix. |
|||
;;; |
|||
;;; GNU Guix is free software; you can redistribute it and/or modify it |
|||
;;; under the terms of the GNU General Public License as published by |
|||
;;; the Free Software Foundation; either version 3 of the License, or (at |
|||
;;; your option) any later version. |
|||
;;; |
|||
;;; GNU Guix is distributed in the hope that it will be useful, but |
|||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
;;; GNU General Public License for more details. |
|||
;;; |
|||
;;; You should have received a copy of the GNU General Public License |
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. |
|||
|
|||
;; IMPORTANT: We must avoid loading any modules from Guix here, |
|||
;; because we need to adjust the guile load paths first. |
|||
;; It's okay to import modules from core Guile though. |
|||
(use-modules (ice-9 regex)) |
|||
|
|||
(let () |
|||
(define-syntax-rule (push! elt v) (set! v (cons elt v))) |
|||
|
|||
(define config-lookup |
|||
(let ((config '(("prefix" . "@prefix@") |
|||
("datarootdir" . "@datarootdir@") |
|||
("guilemoduledir" . "@guilemoduledir@"))) |
|||
(var-ref-regexp (make-regexp "\\$\\{([a-z]+)\\}"))) |
|||
(define (expand-var-ref match) |
|||
(lookup (match:substring match 1))) |
|||
(define (expand str) |
|||
(regexp-substitute/global #f var-ref-regexp str |
|||
'pre expand-var-ref 'post)) |
|||
(define (lookup name) |
|||
(expand (assoc-ref config name))) |
|||
lookup)) |
|||
|
|||
(define (maybe-augment-load-paths!) |
|||
(unless (getenv "GUIX_UNINSTALLED") |
|||
(let ((module-dir (config-lookup "guilemoduledir"))) |
|||
(push! module-dir %load-path) |
|||
(push! module-dir %load-compiled-path)))) |
|||
|
|||
(define (run-guix-main) |
|||
(let ((guix-main (module-ref (resolve-interface '(guix ui)) |
|||
'guix-main))) |
|||
(apply guix-main (command-line)))) |
|||
|
|||
(maybe-augment-load-paths!) |
|||
(run-guix-main)) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue