From: Alex Kost <alezost@gmail.com>
To: guix-devel@gnu.org
Subject: [PATCH 2/2] emacs: Add 'guix-apply-manifest'.
Date: Wed, 27 May 2015 20:52:58 +0300 [thread overview]
Message-ID: <87h9qxvret.fsf@gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 230 bytes --]
With this patch, it will be possible to use "M" key in any *Guix …*
buffer to apply a manifest from file.
Many thanks to David for a great "--manifest" feature and for the idea
of this patch (I read the #guix log :-) ).
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0002-emacs-Add-guix-apply-manifest.patch --]
[-- Type: text/x-diff, Size: 2797 bytes --]
From d6822d5e0b982afb46aadb7d3b83e3453fd37c98 Mon Sep 17 00:00:00 2001
From: Alex Kost <alezost@gmail.com>
Date: Wed, 27 May 2015 20:33:42 +0300
Subject: [PATCH 2/2] emacs: Add 'guix-apply-manifest'.
* emacs/guix-base.el (guix-apply-manifest): New command.
Bind it to "M" key.
* doc/emacs.texi (Emacs General info): Document it.
---
doc/emacs.texi | 5 +++++
emacs/guix-base.el | 27 +++++++++++++++++++++++++++
2 files changed, 32 insertions(+)
diff --git a/doc/emacs.texi b/doc/emacs.texi
index 9678570..6c1b255 100644
--- a/doc/emacs.texi
+++ b/doc/emacs.texi
@@ -183,6 +183,11 @@ packages/generations and redisplay it.
@item R
Redisplay current buffer (without updating information).
+@item M
+Apply manifest to the current profile or to a specified profile, if
+prefix argument is used. This has the same meaning as @code{--manifest}
+option (@pxref{Invoking guix package}).
+
@item C-c C-z
Go to the Guix REPL (@pxref{The REPL,,, geiser, Geiser User Manual}).
diff --git a/emacs/guix-base.el b/emacs/guix-base.el
index 5129c87..851ee89 100644
--- a/emacs/guix-base.el
+++ b/emacs/guix-base.el
@@ -439,6 +439,7 @@ following keywords are available:
(define-key map (kbd "r") 'guix-history-forward)
(define-key map (kbd "g") 'revert-buffer)
(define-key map (kbd "R") 'guix-redisplay-buffer)
+ (define-key map (kbd "M") 'guix-apply-manifest)
(define-key map (kbd "C-c C-z") 'guix-switch-to-repl)))))
(put 'guix-define-buffer-type 'lisp-indent-function 'defun)
@@ -1022,6 +1023,32 @@ Ask a user with PROMPT for continuing an operation."
:dry-run? (or guix-dry-run 'f))
nil 'source-download)))
+;;;###autoload
+(defun guix-apply-manifest (profile file &optional operation-buffer)
+ "Apply manifest from FILE to PROFILE.
+This function has the same meaning as 'guix package --manifest' command.
+See Info node `(guix) Invoking guix package' for details.
+
+Interactively, use the current profile and prompt for manifest
+FILE. With a prefix argument, also prompt for PROFILE."
+ (interactive
+ (let* ((default-profile (or guix-profile guix-current-profile))
+ (profile (if current-prefix-arg
+ (guix-profile-prompt)
+ default-profile))
+ (file (read-file-name "File with manifest: "))
+ (buffer (and guix-profile (current-buffer))))
+ (list profile file buffer)))
+ (when (or (not guix-operation-confirm)
+ (y-or-n-p (format "Apply manifest from '%s' to profile '%s'? "
+ file profile)))
+ (guix-eval-in-repl
+ (guix-make-guile-expression
+ 'guix-package
+ (concat "--profile=" profile)
+ (concat "--manifest=" file))
+ operation-buffer)))
+
\f
;;; Pull
--
2.4.0
next reply other threads:[~2015-05-27 17:53 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-27 17:52 Alex Kost [this message]
2015-05-29 11:52 ` [PATCH 2/2] emacs: Add 'guix-apply-manifest' Ludovic Courtès
2015-05-29 18:24 ` Alex Kost
2015-05-29 18:59 ` Thompson, David
2015-05-29 20:22 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87h9qxvret.fsf@gmail.com \
--to=alezost@gmail.com \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.