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
3f5402e2
Unverified
Commit
3f5402e2
authored
Jan 24, 2022
by
Ricky Medina
Committed by
GitHub
Jan 24, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(1password): add plugin for 1password (#8884)
Co-authored-by:
Marc Cornellà
<
hello@mcornella.com
>
parent
d4f5fa37
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
81 additions
and
0 deletions
+81
-0
1password.plugin.zsh
plugins/1password/1password.plugin.zsh
+46
-0
README.md
plugins/1password/README.md
+35
-0
No files found.
plugins/1password/1password.plugin.zsh
0 → 100644
View file @
3f5402e2
if
((
${
+commands[op]
}
))
;
then
eval
"
$(
op completion zsh
)
"
compdef _op op
fi
# opswd puts the password of the named service into the clipboard. If there's a
# one time password, it will be copied into the clipboard after 5 seconds. The
# clipboard is cleared after another 10 seconds.
function
opswd
()
{
if
[[
$#
-lt
1
]]
;
then
echo
"Usage: opswd <service>"
return
1
fi
local
service
=
$1
# If not logged in, print error and return
op list
users
>
/dev/null
||
return
local
password
# Copy the password to the clipboard
if
!
password
=
$(
op get item
"
$service
"
--fields
password 2>/dev/null
)
;
then
echo
"error: could not obtain password for
$service
"
return
1
fi
echo
-n
"
$password
"
| clipcopy
echo
"✔ password for
$service
copied to clipboard"
# If there's a one time password, copy it to the clipboard after 5 seconds
local
totp
if
totp
=
$(
op get totp
"
$service
"
2>/dev/null
)
&&
[[
-n
"
$totp
"
]]
;
then
sleep
10
&&
echo
-n
"
$totp
"
| clipcopy
echo
"✔ TOTP for
$service
copied to clipboard"
fi
(
sleep
20
&&
clipcopy </dev/null 2>/dev/null
)
&!
}
function
_opswd
()
{
local
-a
services
services
=(
"
${
(@f)
$(
op list items
--categories
Login 2>/dev/null | op get item -
--fields
title 2>/dev/null
)}
"
)
[[
-z
"
$services
"
]]
||
compadd
-a
--
services
}
compdef _opswd opswd
plugins/1password/README.md
0 → 100644
View file @
3f5402e2
# 1Password
This plugin adds 1Password functionality to oh-my-zsh.
To use, add
`1password`
to the list of plugins in your
`.zshrc`
file:
```
zsh
plugins
=(
... 1password
)
```
Then, you can use the command
`opswd`
to copy passwords for services into your
clipboard.
## `opwsd`
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.
If the service also contains a TOTP, it is copied to the clipboard after 10 seconds.
Finally, after 20 seconds, the clipboard is cleared.
The function has completion support, so you can use tab completion to select
which service you want to get.
For example,
`opswd github.com`
will put your GitHub password into your clipboard, and if
a TOTP is available, it will be copied to the clipboard after 10 seconds.
> NOTE: you need to be logged in for `opswd` to work. See:
>
> - [Sign in or out](https://support.1password.com/command-line/#sign-in-or-out)
> - [Session management](https://support.1password.com/command-line/#appendix-session-management)
## Requirements
-
[
1Password's command line utility
](
https://1password.com/downloads/command-line/
)
.
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