diff options
author | Mathieu Lirzin <mthl@openmailbox.org> | 2015-08-06 11:36:53 +0200 |
---|---|---|
committer | Mathieu Lirzin <mthl@openmailbox.org> | 2015-08-30 19:20:12 +0200 |
commit | bd6163d13f6445b9a1ec0f85e4a19b9f73ab74ea (patch) | |
tree | 99396ace587f2c69c05882e88910fba37fb605fa /emacs/guix-profiles.el | |
parent | eb097f36b1c3e7a25f1ce212670e8a19788fd195 (diff) | |
download | patches-bd6163d13f6445b9a1ec0f85e4a19b9f73ab74ea.tar patches-bd6163d13f6445b9a1ec0f85e4a19b9f73ab74ea.tar.gz |
build: Produce 'guix-config' instead of using compile-time tricks.
* emacs/guix-{init,profiles}.el.in: Rename to ...
* emacs/guix-{init,profiles}.el: ... these. New files.
Use 'guix-config'.
* emacs/guix-config.el.in: New file.
* emacs.am (nodist_lisp_DATA): Add it. Move them to ...
(ELFILES): ... here.
* .gitignore, configure.ac: Adjust accordingly.
Diffstat (limited to 'emacs/guix-profiles.el')
-rw-r--r-- | emacs/guix-profiles.el | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/emacs/guix-profiles.el b/emacs/guix-profiles.el new file mode 100644 index 0000000000..1a41745512 --- /dev/null +++ b/emacs/guix-profiles.el @@ -0,0 +1,64 @@ +;;; guix-profiles.el --- Guix profiles + +;; Copyright © 2014 Alex Kost <alezost@gmail.com> + +;; 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 this program. If not, see <http://www.gnu.org/licenses/>. + +;;; Code: + +(require 'guix-config) + +(defvar guix-user-profile + (expand-file-name "~/.guix-profile") + "User profile.") + +(defvar guix-default-profile + (concat guix-state-directory + "/profiles/per-user/" + (getenv "USER") + "/guix-profile") + "Default Guix profile.") + +(defvar guix-current-profile guix-default-profile + "Current profile.") + +(defun guix-profile-prompt (&optional default) + "Prompt for profile and return it. +Use DEFAULT as a start directory. If it is nil, use +`guix-current-profile'." + (let* ((path (read-file-name "Profile: " + (file-name-directory + (or default guix-current-profile)))) + (path (directory-file-name (expand-file-name path)))) + (if (string= path guix-user-profile) + guix-default-profile + path))) + +(defun guix-set-current-profile (path) + "Set `guix-current-profile' to PATH. +Interactively, prompt for PATH. With prefix, use +`guix-default-profile'." + (interactive + (list (if current-prefix-arg + guix-default-profile + (guix-profile-prompt)))) + (setq guix-current-profile path) + (message "Current profile has been set to '%s'." + guix-current-profile)) + +(provide 'guix-profiles) + +;;; guix-profiles.el ends here |