diff options
author | Alex Kost <alezost@gmail.com> | 2016-01-04 19:11:30 +0300 |
---|---|---|
committer | Alex Kost <alezost@gmail.com> | 2016-01-16 13:02:21 +0300 |
commit | 2df17bd0eeed1e29e64cf21ecec61413af19ba65 (patch) | |
tree | 60145cfe020c9eaa539ca4fc0bb1367d7aa214c0 /emacs/guix-base.el | |
parent | a0ad8ab01e839f3d3dbea0da84efbe51e8b67589 (diff) | |
download | gnu-guix-2df17bd0eeed1e29e64cf21ecec61413af19ba65.tar gnu-guix-2df17bd0eeed1e29e64cf21ecec61413af19ba65.tar.gz |
emacs: Find packages in system profiles.
For a usual profile, packages are placed in a profile directory itself,
but for a system profile, packages are placed in 'profile'
sub-directory. So we need to do some special cases for system profiles
to find packages there as well.
* emacs/guix-base.el (guix-packages-profile): New procedure.
(guix-manifest-file): Use it. Add optional 'system?' argument.
* emacs/guix-ui-generation.el (guix-system-generation?)
(guix-generation-current-packages-profile): New procedures.
(guix-generation-packages, guix-generation-insert-packages): Remove
'generation' argument.
(guix-generation-packages-buffer): Add optional 'system?' argument.
(guix-profile-generation-manifest-file)
(guix-profile-generation-packages-buffer): Adjust accordingly.
* emacs/guix-main.scm (generation-package-specifications+paths): Rename to...
(profile->specifications+paths): ... this. Use a single 'profile' argument.
Diffstat (limited to 'emacs/guix-base.el')
-rw-r--r-- | emacs/guix-base.el | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/emacs/guix-base.el b/emacs/guix-base.el index dae658ebfa..d720a87833 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -1,6 +1,6 @@ ;;; guix-base.el --- Common definitions -*- lexical-binding: t -*- -;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com> +;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com> ;; This file is part of GNU Guix. @@ -91,14 +91,25 @@ For the meaning of location, see `guix-find-location'." "Return the file name of a PROFILE's GENERATION." (format "%s-%s-link" profile generation)) -(defun guix-manifest-file (profile &optional generation) +(defun guix-packages-profile (profile &optional generation system?) + "Return a directory where packages are installed for the +PROFILE's GENERATION. + +If SYSTEM? is non-nil, then PROFILE is considered to be a system +profile. Unlike usual profiles, for a system profile, packages +are placed in 'profile' subdirectory." + (let ((profile (if generation + (guix-generation-file profile generation) + profile))) + (if system? + (expand-file-name "profile" profile) + profile))) + +(defun guix-manifest-file (profile &optional generation system?) "Return the file name of a PROFILE's manifest. -If GENERATION number is specified, return manifest file name for -this generation." +See `guix-packages-profile'." (expand-file-name "manifest" - (if generation - (guix-generation-file profile generation) - profile))) + (guix-packages-profile profile generation system?))) ;;;###autoload (defun guix-edit (id-or-name) |