diff options
Diffstat (limited to '')
| -rwxr-xr-x | bin/pasm | 48 |
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 |