summary refs log tree commit diff
path: root/bin/pasm
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2026-09-27 17:38:39 +0200
committerRobert Günzler <r@gnzler.io>2026-09-27 17:38:39 +0200
commit0860db73ae6fd9a6f6347219d820bf026a6b8b91 (patch)
tree11318c3670d1c32c5aa0bf404c22fba3bf63fc53 /bin/pasm
parent4e34cbf9673aeaba252e01df554a0d204e83c5e2 (diff)
downloaddotfiles-master.tar.gz
Automated-commit-by: dots
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '')
-rwxr-xr-xbin/pasm48
1 files changed, 41 insertions, 7 deletions
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