emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/openpgp 72dbc056ba 12/30: Added email autocompletion fo


From: ELPA Syncer
Subject: [elpa] externals/openpgp 72dbc056ba 12/30: Added email autocompletion for openpgp-upload-key
Date: Sun, 26 Mar 2023 10:59:27 -0400 (EDT)

branch: externals/openpgp
commit 72dbc056baf5cf6f85149dc82915e2b03ad86015
Author: Philip Kaludercic <philip.kaludercic@fau.de>
Commit: Philip Kaludercic <philip.kaludercic@fau.de>

    Added email autocompletion for openpgp-upload-key
---
 openpgp.el | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/openpgp.el b/openpgp.el
index 67e59c2688..14c74832bd 100644
--- a/openpgp.el
+++ b/openpgp.el
@@ -1,10 +1,11 @@
-;;; $Id: openpgp.el,v 1.10 2020/03/05 13:01:25 oj14ozun Exp oj14ozun $
+;;; $Id: openpgp.el,v 1.11 2020/03/05 13:04:20 oj14ozun Exp oj14ozun $
 ;;; Implementation of the keys.openpgp.org protocol as specified by
 ;;; https://keys.openpgp.org/about/api
 
 (require 'json)
 (require 'url)
 (require 'url-http)
+(require 'epg)
 
 (defcustom openpgp-keyserver "keys.openpgp.org"
   "Domain of keyserver to use.
@@ -51,6 +52,13 @@ URL, if non-nil."
 
  ;; UPLOADING KEYS
 
+(defun openpgp--key-ids ()
+  (let* ((keys (epg-list-keys (epg-make-context)))
+        (uids (mapcan #'epg-key-user-id-list keys))
+        (ids (mapcar #'epg-user-id-string uids))
+        (addr (mapcar #'mail-extract-address-components ids)))
+    (mapcan (lambda (addr) (and (car addr) (cdr addr))) addr)))
+
 (defun openpgp--verify-callback (status email)
   (when (plist-get status :error)
     (error "Request failed: %s"
@@ -118,9 +126,8 @@ key."
 
 (defun openpgp-upload-key (email)
   "Upload public key for address EMAIL using gpg."
-  (interactive (list (read-string (format "Email (default: %s): "
-                                         user-mail-address)
-                                 nil nil user-mail-address)))
+  (interactive (list (completing-read "Email: " (openpgp--key-ids)
+                                     nil nil nil nil user-mail-address)))
   (let* ((addr (shell-quote-argument email))
         (cmd (format "gpg --armor --export %s" addr))
         (out (shell-command-to-string cmd)))



reply via email to

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