43 lines
		
	
	
	
		
			862 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			862 B
		
	
	
	
		
			Text
		
	
	
	
	
	
_gpg-unlock
 | 
						|
set -xe
 | 
						|
 | 
						|
find_file() {
 | 
						|
  fd --strip-cwd-prefix '\.gpg$' |
 | 
						|
  sd ".gpg$" "" |
 | 
						|
  wdmenu -p "Password" $@
 | 
						|
}
 | 
						|
 | 
						|
main() {
 | 
						|
 | 
						|
  test -n "$PASSWORD_STORE_DIR" &&
 | 
						|
    cd "$PASSWORD_STORE_DIR" ||
 | 
						|
    cd "$HOME/.password-store"
 | 
						|
 | 
						|
    entry=`find_file "$@"`
 | 
						|
 | 
						|
    test -n "$entry" || exit 0
 | 
						|
 | 
						|
    username=`pass show "$entry" 2>/dev/null | perl -ne 'print $2 if /^(login|user|email): (.*)/'`
 | 
						|
    password=`pass show "$entry" 2>/dev/null | head -n 1`
 | 
						|
 | 
						|
    action=`printf "Autotype\nUsername -> $username\nPassword" | wdmenu -p Action`
 | 
						|
 | 
						|
    case $action in
 | 
						|
        Autotype)
 | 
						|
            autotype
 | 
						|
            ;;
 | 
						|
        Username*)
 | 
						|
            printf '%s' "$username" | wl-copy;;
 | 
						|
        Password)
 | 
						|
            printf '%s' "$password" | wl-copy;;
 | 
						|
    esac
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
autotype(){
 | 
						|
    env wtype -s 100 "$username"
 | 
						|
    env wtype -s 100 -k tab
 | 
						|
    env wtype -s 100 "$password"
 | 
						|
}
 | 
						|
 | 
						|
main
 |