From 0860db73ae6fd9a6f6347219d820bf026a6b8b91 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Sun, 27 Sep 2026 17:38:39 +0200 Subject: * MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automated-commit-by: dots Signed-off-by: Robert Günzler --- bin/pasm | 48 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 7 deletions(-) (limited to 'bin/pasm') diff --git a/bin/pasm b/bin/pasm index 7555167..60c0394 100755 --- a/bin/pasm +++ b/bin/pasm @@ -16,12 +16,33 @@ main() { local eid eid=$(rbw_select_entry) + case "$eid" in + cards) + eid=$(rbw list --raw | + jq -r '.[]|select(.type=="Card")|"\(.id)\t\(.name)"' | + fuzl_menu $FUZL_MENU_FILTER --with-nth=2 --accept-nth=1) - fuzl_action_add "copy" "󰀄" "copy username/password" - rbw_has_totp "$eid" && fuzl_action_add "totp" "󰎃" "copy totp code" - fuzl_action_add "url" "󰌹" "copy url" + fuzl_action_add "raw" "󱃖" "view json" + fuzl_action_menu "$eid" || exit 1 + ;; + identities) + eid=$(rbw list --raw | + jq -r '.[]|select(.type=="Identity")|"\(.id)\t\(.name)"' | + fuzl_menu $FUZL_MENU_FILTER --with-nth=2 --accept-nth=1) + + fuzl_action_add "raw" "󱃖" "view json" + fuzl_action_menu "$eid" || exit 1 + ;; + *) + fuzl_action_add "copy" "󰀄" "copy username/password" + rbw_has_totp "$eid" && fuzl_action_add "totp" "󰎃" "copy totp code" + fuzl_action_add "url" "󰌹" "copy url" + fuzl_action_add "raw" "󱃖" "view json" + + fuzl_action_menu "$eid" || exit 1 + ;; + esac - fuzl_action_menu "$eid" || exit 1 } # @@ -29,9 +50,15 @@ main() { # rbw_select_entry() { - rbw list --raw | - jq -r '.[] | select(.type=="Login") | [.id,.name,.user,(.uris[0]//"-")]|join("%")' | - awk -F% '{print $1 "\t" ($2 " →") "\t" ("󰀄 " $3) "\t" ("󰌹 " $4)}' | + ( + rbw list --raw | + jq -r '.[] | select(.type=="Login") | [.id,.name,.user,(.uris[0]//"-")]|join("%")' | + awk -F% '{print $1 "\t" ($2 " →") "\t" ("󰀄 " $3) "\t" ("󰌹 " $4)}' + printf 'cards\t~> C\tcards\n' + printf 'identities\t~> I\tidentities\n' + printf 'keys\t~> K\tkeys\n' + printf 'notes\t~> N\tnotes\n' + ) | fuzl_menu $FUZL_MENU_FILTER --with-nth='{2} {3..}' --accept-nth=1 -w 80 } @@ -68,4 +95,11 @@ pasm_url() { fuzl_notification "$(rbw_entry "$eid")" "copied url to clipboard" } +pasm_raw() { + local eid=${1:?missing eid} + local tmpfile="/tmp/$(printf '%s' "$eid" | sha1sum | cut -d\ -f1).json" + fuzl_try -- rbw get --raw "$eid" >"$tmpfile" + fuzl_try -- urlopen open "$tmpfile" +} + main -- cgit 1.4.1