30 lines
		
	
	
		
			856 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			856 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| . $HOME/.bin/_config
 | |
| 
 | |
| shopt -s nullglob globstar
 | |
| 
 | |
| prefix=${PASSWORD_STORE_DIR-~/.password-store}
 | |
| password_files=( "$prefix"/**/*.gpg )
 | |
| password_files=( "${password_files[@]#"$prefix"/}" )
 | |
| password_files=( "${password_files[@]%.gpg}" )
 | |
| password=$(printf '%s\n' "${password_files[@]}" | $DMENU_CMD -p Password)
 | |
| 
 | |
| [[ -n $password ]] || exit
 | |
| 
 | |
| # read password file
 | |
| password_out=$(pass "$password" 2> /dev/null)
 | |
| 
 | |
| # copy password line
 | |
| printf "%s" "$password_out" | head -1 | xclip -r
 | |
| 
 | |
| # extract additional information
 | |
| password_info=$(printf "%s" "$password_out" | grep -Ei 'login|user')
 | |
| url_info=$(printf "%s" "$password_out" | grep -Ei '^url' | awk -F"[ :]*" '{ $1=""; print $0 }' )
 | |
| 
 | |
| # show desktop notification
 | |
| if [[ -n $password_info ]]; then
 | |
|     notify-send "$(printf '%s' "$password_info")"
 | |
| else
 | |
|     notify-send "No username provided."
 | |
| fi
 | 
