Usage: lps [keyword]
Then it asks you to copy or show password:
- if you want to copy, write that number before name of entry
- if you want show the password,
show [number](ors [number], ors[number])
| #!/bin/sh | |
| # Usage: 1) change $USERNAME | |
| # 2) save script to /bin/ (or anywhere you want) and chmod +x lps.sh | |
| # 3) lps.sh google.com | |
| export LPASS_DISABLE_PINENTRY=1 | |
| [email protected] | |
| isLogged=$(lpass status) | |
| echo $isLogged; | |
| if [[ $isLogged != *"Logged in as $USERNAME"* ]] | |
| then | |
| lpass login --trust $USERNAME; | |
| fi; | |
| function printField { | |
| id=$1 | |
| fieldName=$2 | |
| value=$(lpass show $id --$fieldName) | |
| echo -en "\e[33m$fieldName: \e[0m" | |
| if [ $2 = "password" ] | |
| then | |
| echo -e "\e[8m$value\e[0m" | |
| else | |
| echo -e "\e[0m$value\e[0m" | |
| fi | |
| } | |
| function printHead { | |
| id=$1 | |
| groupName=$(lpass ls | grep -i "$id" | sed -r 's/(.*)\/.*\[id: [0-9]+\]/\1/') | |
| name=$(lpass show $id --name) | |
| echo -e "\e[4m$2)\e[0m \e[36m\e[1m$groupName/\e[34m$name \e[0m \e[92m[id: $id]\e[0m" | |
| } | |
| declare -A assoc | |
| declare -i number | |
| i=1 | |
| for LINE in $(lpass ls | grep -i $@ | sed -r 's/.*\[id: ([0-9]+)\]/\1/'); do | |
| ((number++)) | |
| printHead $LINE $number | |
| printField $LINE "username" | |
| #printField $LINE "password" | |
| printField $LINE "url" | |
| printField $LINE "note" | |
| echo "" | |
| assoc["$number"]=$LINE | |
| done | |
| while true | |
| do | |
| echo -n "What password would you like copy or show? (empty = exit; prefix 's' = show): " | |
| read -r key | |
| if [ -z "$key" ] | |
| then | |
| exit; | |
| fi | |
| if [[ $key == "s"* ]]; | |
| then | |
| id=$(echo $key | sed -r 's/s.*([0-9]+)/\1/') | |
| id=${assoc[$id]} | |
| else | |
| id=${assoc[$key]} | |
| fi | |
| if [ -z "$id" ] | |
| then | |
| echo "Not found, please select one of 1..$number" | |
| else | |
| if [[ $key == "s"* ]]; | |
| then | |
| lpass show $id -p | |
| else | |
| lpass show $id -cp | |
| echo "Password for $id id is copied" | |
| fi | |
| fi | |
| done |