mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 13:21:19 +08:00 
			
		
		
		
	feat(rbw): add rbwpw function to copy passwords to the clipboard (#10639)
				
					
				
			This commit is contained in:
		
							parent
							
								
									897fa09f15
								
							
						
					
					
						commit
						c41f2e7a09
					
				@ -9,4 +9,14 @@ To use it, add `rbw` to the plugins array in your zshrc file:
 | 
			
		||||
plugins=(... rbw)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## `rbwpw`
 | 
			
		||||
 | 
			
		||||
The `rbwpw` function is a wrapper around `rbw`. It copies the password in the
 | 
			
		||||
clipboard for the service you ask for and clears the clipboard 20s later.
 | 
			
		||||
The usage is as follows:
 | 
			
		||||
 | 
			
		||||
```zsh
 | 
			
		||||
rbwpw <service>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
This plugin does not add any aliases.
 | 
			
		||||
 | 
			
		||||
@ -17,3 +17,33 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_rbw" ]]; then
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
rbw gen-completions zsh >| "$ZSH_CACHE_DIR/completions/_rbw" &|
 | 
			
		||||
 | 
			
		||||
# rbwpw function copies the password of a service to the clipboard
 | 
			
		||||
# and clears it after 20 seconds
 | 
			
		||||
function rbwpw {
 | 
			
		||||
  if [[ $# -ne 1 ]]; then
 | 
			
		||||
    echo "usage: rbwpw <service>"
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
  local service=$1
 | 
			
		||||
  if ! rbw unlock; then
 | 
			
		||||
    echo "rbw is locked"
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
  local pw=$(rbw get $service 2>/dev/null)
 | 
			
		||||
  if [[ -z $pw ]]; then
 | 
			
		||||
    echo "$service not found"
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
  echo -n $pw | clipcopy
 | 
			
		||||
  echo "password for $service copied!"
 | 
			
		||||
  {sleep 20 && clipcopy </dev/null 2>/dev/null} &|
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function _rbwpw {
 | 
			
		||||
  local -a services
 | 
			
		||||
  services=("${(@f)$(rbw ls 2>/dev/null)}")
 | 
			
		||||
  [[ -n "$services" ]] && compadd -a -- services
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
compdef _rbwpw rbwpw
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user