guix-devel
[Top][All Lists]
Advanced

[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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]