Last active
November 7, 2024 00:06
-
-
Save justinline/e11ac0f08f267502b9e96362457d03c6 to your computer and use it in GitHub Desktop.
1password command line clipboard copying
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Short alias to allow automated copying of the 1password cli tool command 'op get somewebsite | jq ...' and then a timed clear on the gnome clipboard | |
# TODO: specify designation as an argument and maybe a command to open the website in chrome | |
pass=$(op get item $1 | jq -r '.details.fields[] | select(.designation=="password").value') | |
if [ -n "$pass" ] | |
then | |
echo $pass | xclip -selection clipboard | |
echo "Password was copied - clipboard will be wiped in 15 seconds" | |
sleep 15 | |
echo "" | xclip -selection clipboard | |
echo "Clipboard reset." | |
fi |
I made a version that works for Mac and:
- Restores the clipboard contents to what it was before running the command
- Removes the newline that echo was adding to the clipboard
- Is a function that can be pasted into .zshrc
pw() {
pass=$(op item get $1 --format json | jq -r '.fields[] | select(.id=="password").value')
if [ -z "$pass" ]; then
echo "Password not found"
return
fi
old_clip=$(pbpaste)
echo -n $pass | pbcopy
echo "Password was copied - clipboard will be restored in 15 seconds"
sleep 15
echo -n $old_clip | pbcopy
echo "Clipboard reset."
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Tested on a MacBook Pro M1 Ventura 13.5, this works: