Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
6df14641
Unverified
Commit
6df14641
authored
Nov 07, 2022
by
Gheritarish
Committed by
GitHub
Nov 07, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(1password): add username copy to `opswd` (#10812)
parent
0145d744
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
10 deletions
+24
-10
README.md
plugins/1password/README.md
+9
-7
opswd
plugins/1password/opswd
+15
-3
No files found.
plugins/1password/README.md
View file @
6df14641
...
@@ -14,16 +14,18 @@ clipboard.
...
@@ -14,16 +14,18 @@ clipboard.
## `opswd`
## `opswd`
The
`opswd`
command is a wrapper around the
`op`
command. It takes a service
The
`opswd`
command is a wrapper around the
`op`
command. It takes a service
name as an argument and copies the password for that service to the clipboard.
name as an argument and copies the username, then the password for that service
to the clipboard, after confirmation on the user part.
If the service also contains a TOTP, it is copied to the clipboard after
10 seconds.
If the service also contains a TOTP, it is copied to the clipboard after
confirmation
Finally, after 20 seconds, the clipboard is cleared.
on the user part.
Finally, after 20 seconds, the clipboard is cleared.
The function has completion support, so you can use tab completion to select
For example,
`opswd github.com`
will put your GitHub username into your clipboard. Then,
which service you want to get.
it will ask for confirmation to continue, and copy the password to your clipboard. Finally,
if a TOTP is available, it will be copied to the clipboard after your confirmation.
For example,
`opswd github.com`
will put your GitHub password into your clipboard, and if
This function has completion support, so you can use tab completion to select which
a TOTP is available, it will be copied to the clipboard after 10 seconds
.
service you want to get
.
> NOTE: you need to be signed in for `opswd` to work. If you are using biometric unlock,
> NOTE: you need to be signed in for `opswd` to work. If you are using biometric unlock,
> 1Password CLI will automatically prompt you to sign in. See:
> 1Password CLI will automatically prompt you to sign in. See:
...
...
plugins/1password/opswd
View file @
6df14641
...
@@ -14,6 +14,17 @@ function opswd() {
...
@@ -14,6 +14,17 @@ function opswd() {
# If not logged in, print error and return
# If not logged in, print error and return
op user list > /dev/null || return
op user list > /dev/null || return
local username
# Copy the username to the clipboard
if ! username=$(op item get "$service" --fields username 2>/dev/null); then
echo "error: could not obtain username for $service"
return 1
fi
echo -n "$username" | clipcopy
echo "✔ username for service $service copied to the clipboard. Press Enter to continue"
read
local password
local password
# Copy the password to the clipboard
# Copy the password to the clipboard
if ! password=$(op item get "$service" --fields password 2>/dev/null); then
if ! password=$(op item get "$service" --fields password 2>/dev/null); then
...
@@ -22,12 +33,13 @@ function opswd() {
...
@@ -22,12 +33,13 @@ function opswd() {
fi
fi
echo -n "$password" | clipcopy
echo -n "$password" | clipcopy
echo "✔ password for $service copied to clipboard"
echo "✔ password for $service copied to clipboard. Press Enter to continue"
read
# If there's a one time password, copy it to the clipboard
after 10 seconds
# If there's a one time password, copy it to the clipboard
local totp
local totp
if totp=$(op item get --otp "$service" 2>/dev/null) && [[ -n "$totp" ]]; then
if totp=$(op item get --otp "$service" 2>/dev/null) && [[ -n "$totp" ]]; then
sleep 10 &&
echo -n "$totp" | clipcopy
echo -n "$totp" | clipcopy
echo "✔ TOTP for $service copied to clipboard"
echo "✔ TOTP for $service copied to clipboard"
fi
fi
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment