aboutsummaryrefslogtreecommitdiff
path: root/emacs/guix-backend.el
diff options
context:
space:
mode:
authorAlex Kost <alezost@gmail.com>2016-04-01 14:00:01 +0300
committerAlex Kost <alezost@gmail.com>2016-04-18 10:09:02 +0300
commit79c7a8f214707c98c1ea1936fd62baec41177a81 (patch)
treee159d941112a49cdee0523b983f74a78e7b81a41 /emacs/guix-backend.el
parentb4ea535a9f0382f3575fdeb3b2eb1cc7cfc37cd4 (diff)
downloadguix-79c7a8f214707c98c1ea1936fd62baec41177a81.tar
guix-79c7a8f214707c98c1ea1936fd62baec41177a81.tar.gz
emacs: Separate package location code.
* emacs/guix-base.el (guix-directory, guix-read-directory) (guix-set-directory): Move to "guix-backend.el". (guix-find-location, guix-package-location, guix-edit): Move to... * emacs/guix-location.el: ... here. New file. * emacs/guix-ui-package.el: Use it. * emacs.am (ELFILES): Add it.
Diffstat (limited to 'emacs/guix-backend.el')
-rw-r--r--emacs/guix-backend.el24
1 files changed, 23 insertions, 1 deletions
diff --git a/emacs/guix-backend.el b/emacs/guix-backend.el
index 8afbc9ed48..6341aacae1 100644
--- a/emacs/guix-backend.el
+++ b/emacs/guix-backend.el
@@ -82,7 +82,7 @@ If you have a slow system, try to increase this time."
:type 'string
:group 'guix-repl)
-(defcustom guix-after-start-repl-hook ()
+(defcustom guix-after-start-repl-hook '(guix-set-directory)
"Hook called after Guix REPL is started."
:type 'hook
:group 'guix-repl)
@@ -337,6 +337,28 @@ additional internal REPL if it exists."
(geiser-repl--switch-to-buffer (guix-get-repl-buffer internal)))
+;;; Guix directory
+
+(defvar guix-directory nil
+ "Default directory with Guix source.
+If it is not set by a user, it is set after starting Guile REPL.
+This directory is used to define package locations.")
+
+(defun guix-read-directory ()
+ "Return `guix-directory' or prompt for it.
+This function is intended for using in `interactive' forms."
+ (if current-prefix-arg
+ (read-directory-name "Directory with Guix modules: "
+ guix-directory)
+ guix-directory))
+
+(defun guix-set-directory ()
+ "Set `guix-directory' if needed."
+ (or guix-directory
+ (setq guix-directory
+ (guix-eval-read "%guix-dir"))))
+
+
;;; Evaluating expressions
(defvar guix-operation-buffer nil