[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/4] build: Add more variables to (guix config).
From: |
Mathieu Lirzin |
Subject: |
[PATCH 1/4] build: Add more variables to (guix config). |
Date: |
Mon, 27 Jul 2015 23:48:37 +0200 |
* guix/config.scm.in (%prefix, %guile-module-dir): New variables.
* emacs/guix-helper.scm.in: Rename to ...
* emacs/guix-helper.scm: ... this. New file. Use them.
* .gitignore, configure.ac: Adjust accordingly.
---
.gitignore | 1 -
configure.ac | 3 +--
emacs/guix-helper.scm | 66 ++++++++++++++++++++++++++++++++++++++++++++++++
emacs/guix-helper.scm.in | 65 -----------------------------------------------
guix/config.scm.in | 11 +++++++-
5 files changed, 77 insertions(+), 69 deletions(-)
create mode 100644 emacs/guix-helper.scm
delete mode 100644 emacs/guix-helper.scm.in
diff --git a/.gitignore b/.gitignore
index c7a6cdd..a3bd340 100644
--- a/.gitignore
+++ b/.gitignore
@@ -119,7 +119,6 @@ GTAGS
/emacs/Makefile.in
/emacs/Makefile
/emacs/guix-autoloads.el
-/emacs/guix-helper.scm
/emacs/guix-init.el
/emacs/guix-profiles.el
/doc/os-config-bare-bones.texi
diff --git a/configure.ac b/configure.ac
index 2c8b9f0..c873ef3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -201,7 +201,6 @@ AM_CONDITIONAL([HAVE_EMACS], [test "x$EMACS" != "xno"])
emacsuidir="${guilemoduledir}/guix/emacs"
AC_SUBST([emacsuidir])
AC_CONFIG_FILES([emacs/guix-init.el
- emacs/guix-profiles.el
- emacs/guix-helper.scm])
+ emacs/guix-profiles.el])
AC_OUTPUT
diff --git a/emacs/guix-helper.scm b/emacs/guix-helper.scm
new file mode 100644
index 0000000..5aa7d0e
--- /dev/null
+++ b/emacs/guix-helper.scm
@@ -0,0 +1,66 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Alex Kost <address@hidden>
+;;;
+;;; 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/>.
+
+;;; Commentary:
+
+;; This is an auxiliary file for the Emacs UI. It is used to add Guix
+;; directories to path variables and to load the main code.
+
+;;; Code:
+
+(use-modules (ice-9 regex)
+ (srfi srfi-26)
+ (guix config))
+
+(define %guix-dir)
+
+;; The code is taken from âguixâ executable script
+(define (set-paths!)
+ (define-syntax-rule (push! elt v) (set! v (cons elt v)))
+
+ (define config-lookup
+ (let ((config '(("prefix" . %prefix)
+ ("guilemoduledir" . %guile-module-dir)))
+ (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))
+
+ (let ((module-dir (config-lookup "guilemoduledir"))
+ (updates-dir (and=> (or (getenv "XDG_CONFIG_HOME")
+ (and=> (getenv "HOME")
+ (cut string-append <> "/.config")))
+ (cut string-append <> "/guix/latest"))))
+ (push! module-dir %load-path)
+ (push! module-dir %load-compiled-path)
+ (if (and updates-dir (file-exists? updates-dir))
+ (begin
+ (set! %guix-dir updates-dir)
+ (push! updates-dir %load-path)
+ (push! updates-dir %load-compiled-path))
+ (set! %guix-dir module-dir))))
+
+(set-paths!)
+
+(load-from-path "guix-main")
+
diff --git a/emacs/guix-helper.scm.in b/emacs/guix-helper.scm.in
deleted file mode 100644
index 0bbd36b..0000000
--- a/emacs/guix-helper.scm.in
+++ /dev/null
@@ -1,65 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Alex Kost <address@hidden>
-;;;
-;;; 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/>.
-
-;;; Commentary:
-
-;; This is an auxiliary file for the Emacs UI. It is used to add Guix
-;; directories to path variables and to load the main code.
-
-;;; Code:
-
-(use-modules (ice-9 regex)
- (srfi srfi-26))
-
-(define %guix-dir)
-
-;; The code is taken from âguixâ executable script
-(define (set-paths!)
- (define-syntax-rule (push! elt v) (set! v (cons elt v)))
-
- (define config-lookup
- (let ((config '(("prefix" . "@prefix@")
- ("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))
-
- (let ((module-dir (config-lookup "guilemoduledir"))
- (updates-dir (and=> (or (getenv "XDG_CONFIG_HOME")
- (and=> (getenv "HOME")
- (cut string-append <> "/.config")))
- (cut string-append <> "/guix/latest"))))
- (push! module-dir %load-path)
- (push! module-dir %load-compiled-path)
- (if (and updates-dir (file-exists? updates-dir))
- (begin
- (set! %guix-dir updates-dir)
- (push! updates-dir %load-path)
- (push! updates-dir %load-compiled-path))
- (set! %guix-dir module-dir))))
-
-(set-paths!)
-
-(load-from-path "guix-main")
-
diff --git a/guix/config.scm.in b/guix/config.scm.in
index eaadae9..4032ee8 100644
--- a/guix/config.scm.in
+++ b/guix/config.scm.in
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <address@hidden>
+;;; Copyright © 2015 Mathieu Lirzin <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -31,7 +32,9 @@
%nix-instantiate
%gzip
%bzip2
- %xz))
+ %xz
+ %prefix
+ %guile-module-dir))
;;; Commentary:
;;;
@@ -90,4 +93,10 @@
(define %xz
"@XZ@")
+(define %prefix
+ "@prefix@")
+
+(define %guile-module-dir
+ "@guilemoduledir@")
+
;;; config.scm ends here