doomemacs/modules/tools/password-store/autoload.el

41 lines
1.2 KiB
EmacsLisp
Raw Normal View History

;;; tools/password-store/autoload.el -*- lexical-binding: t; -*-
;;;###autoload
(defun +pass/open ()
(interactive)
(cond ((featurep! :completion ivy)
(+pass-ivy))
((featurep! :completion helm)
(helm-pass))
(t
(pass))))
(after! ivy
(defun +pass-ivy-action--copy-username (item)
2017-06-12 01:35:03 +02:00
(if-let (user (cl-loop with data = (auth-pass-parse-entry item)
for key in +pass-user-fields
when (assoc key data)
return (cdr it)))
(progn (password-store-clear)
(message "Copied username to the kill ring.")
(kill-new user))
(message "Username not found!")))
(ivy-add-actions
'+pass/ivy
'(("o" password-store-copy "copy password")
("u" +pass-ivy-action--copy-username "copy username")
("e" password-store-edit "edit entry")
("b" password-store-url "open url in browser"))))
;;;###autoload
(defun +pass/ivy (&optional browse-url)
(interactive "P")
(ivy-read "Pass: " (password-store-list)
:action (if browse-url
#'password-store-url
#'password-store-copy)
:caller '+pass/ivy))