Round 187: Pass, Auth-source, Keychain, Pinentry commands
ober
407e5dd09204365adb258a862ed19e74a4c28822
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | ebib-import-file | :orange_circle: | Import file into Ebib | | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer | +### Round 187 — Pass, Auth-source, Keychain, Pinentry + +| Feature | Status | Notes | +|---|---|---| +| pass-mode | :orange_circle: | Toggle pass mode | +| pass-view | :orange_circle: | View pass entry | +| pass-copy | :orange_circle: | Copy pass entry to clipboard | +| pass-insert | :orange_circle: | Insert new pass entry | +| pass-generate | :orange_circle: | Generate password | +| pass-remove | :orange_circle: | Remove pass entry | +| pass-rename | :orange_circle: | Rename pass entry | +| pass-edit | :orange_circle: | Edit pass entry | +| pass-otp-append | :orange_circle: | Append OTP to entry | +| pass-otp-copy | :orange_circle: | Copy OTP token | +| pass-copy-username | :orange_circle: | Copy username from entry | +| auth-source-forget | :orange_circle: | Forget cached credentials | +| auth-source-save-behavior | :orange_circle: | Toggle save behavior | +| keychain-unlock | :orange_circle: | Unlock keychain | +| keychain-lock | :orange_circle: | Lock keychain | +| keychain-list | :orange_circle: | List keychain entries | +| keychain-refresh | :orange_circle: | Refresh keychain | +| pinentry-start | :orange_circle: | Start pinentry | +| pinentry-stop | :orange_circle: | Stop pinentry | +| pinentry-prompt | :orange_circle: | Show pinentry prompt | + ### Round 186 — Systemd, Journalctl, Proced-ext, Auditd | Feature | Status | Notes | --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -17555,3 +17555,46 @@ (echo-read-string echo "Audit filter: " (lambda (filter) (echo-message! echo (str "Auditd: filtering by " filter)))))) + +;; Round 187 — Pass, Auth-source, Keychain, Pinentry (batch 2) +(def (cmd-pass-copy-username app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Copy username for: " + (lambda (entry) + (echo-message! echo (str "Pass: copied username for " entry)))))) + +(def (cmd-auth-source-forget app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Auth-source: forgot cached credentials"))) + +(def (cmd-auth-source-save-behavior app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Auth-source: toggled save behavior"))) + +(def (cmd-keychain-unlock app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Keychain: unlocked"))) + +(def (cmd-keychain-lock app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Keychain: locked"))) + +(def (cmd-keychain-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Keychain: listing entries"))) + +(def (cmd-keychain-refresh app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Keychain: refreshed"))) + +(def (cmd-pinentry-start app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Pinentry: started"))) + +(def (cmd-pinentry-stop app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Pinentry: stopped"))) + +(def (cmd-pinentry-prompt app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Pinentry: showing prompt"))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -18182,3 +18182,65 @@ (def (cmd-journalctl-boot app) (let* ((echo (app-state-echo app))) (echo-message! echo "Journalctl: showing current boot log"))) + +;; Round 187 — Pass, Auth-source, Keychain, Pinentry (batch 1) +(def (cmd-pass-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'pass) + (if (mode-enabled? app 'pass) + (echo-message! echo "Pass mode enabled") + (echo-message! echo "Pass mode disabled")))) + +(def (cmd-pass-view app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Entry: " + (lambda (entry) + (echo-message! echo (str "Pass: viewing " entry)))))) + +(def (cmd-pass-copy app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Copy entry: " + (lambda (entry) + (echo-message! echo (str "Pass: copied " entry " to clipboard")))))) + +(def (cmd-pass-insert app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "New entry name: " + (lambda (entry) + (echo-message! echo (str "Pass: inserted " entry)))))) + +(def (cmd-pass-generate app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Generate for: " + (lambda (entry) + (echo-message! echo (str "Pass: generated password for " entry)))))) + +(def (cmd-pass-remove app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Remove entry: " + (lambda (entry) + (echo-message! echo (str "Pass: removed " entry)))))) + +(def (cmd-pass-rename app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Rename entry: " + (lambda (entry) + (echo-message! echo (str "Pass: renamed " entry)))))) + +(def (cmd-pass-edit app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Edit entry: " + (lambda (entry) + (echo-message! echo (str "Pass: editing " entry)))))) + +(def (cmd-pass-otp-append app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "OTP entry: " + (lambda (entry) + (echo-message! echo (str "Pass: appended OTP to " entry)))))) + +(def (cmd-pass-otp-copy app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Copy OTP for: " + (lambda (entry) + (echo-message! echo (str "Pass: copied OTP for " entry)))))) --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -5360,4 +5360,25 @@ (register-command! 'auditd-mode cmd-auditd-mode) (register-command! 'auditd-search cmd-auditd-search) (register-command! 'auditd-filter cmd-auditd-filter) + ;; Round 187 — Pass, Auth-source, Keychain, Pinentry + (register-command! 'pass-mode cmd-pass-mode) + (register-command! 'pass-view cmd-pass-view) + (register-command! 'pass-copy cmd-pass-copy) + (register-command! 'pass-insert cmd-pass-insert) + (register-command! 'pass-generate cmd-pass-generate) + (register-command! 'pass-remove cmd-pass-remove) + (register-command! 'pass-rename cmd-pass-rename) + (register-command! 'pass-edit cmd-pass-edit) + (register-command! 'pass-otp-append cmd-pass-otp-append) + (register-command! 'pass-otp-copy cmd-pass-otp-copy) + (register-command! 'pass-copy-username cmd-pass-copy-username) + (register-command! 'auth-source-forget cmd-auth-source-forget) + (register-command! 'auth-source-save-behavior cmd-auth-source-save-behavior) + (register-command! 'keychain-unlock cmd-keychain-unlock) + (register-command! 'keychain-lock cmd-keychain-lock) + (register-command! 'keychain-list cmd-keychain-list) + (register-command! 'keychain-refresh cmd-keychain-refresh) + (register-command! 'pinentry-start cmd-pinentry-start) + (register-command! 'pinentry-stop cmd-pinentry-stop) + (register-command! 'pinentry-prompt cmd-pinentry-prompt) )