aboutsummaryrefslogblamecommitdiff
path: root/bin/dmp
blob: d25082dd4607030f7668dd3755b386daac180d1d (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

         


                                                                         





                                                    
                           
     
                         




                                                       
                               

                                                   
         




                                                                
                                                     
#!/bin/sh

# Sole optional argument is the password timeout (defaults to 10 seconds)
timeout_sec=${1:-10}

# Get the password store directory, bail if we can't
pwsd=${PASSWORD_STORE_DIR:-$HOME/.password-store}
pwsd=${pwsd%/}
[ -n "$pwsd" ] || exit

# Get the password; get all the names from find(1)
# shellcheck disable=SC2016
pw=$(
    cd -- "$pwsd" || exit
    # Get all the names from find(1)
    find ./ -name \*.gpg |
    # Sort them
    sort |
    # Strip the leading directory and the trailing .gpg
    sed 's_^\./__;s_\.gpg$__' |
    # Use dmenu(1) to prompt the user to select one
    dmenu
) || exit

# Bail if we don't have a password
[ -n "$pw" ] || exit

# Pump the password into the clipboard xsel(2); allow 10 seconds
pass show "$pw" | xsel -ibt "$((timeout_sec * 1000))"