#!/bin/bash # A credential helper for git to retrieve usernames and passwords from lastpass. # For general usage, see https://git-scm.com/docs/gitcredentials. # Here's a quick version: # 1. Put this somewhere in your path. # 2. git config --global credential.helper lastpass declare -A params if [ "x$1" == "x-l" ]; then shift lpassuser=$1 shift fi if [ "x$1" == "xget" ]; then read line while [ -n "$line" ]; do key=${line%%=*} value=${line#*=} params[$key]=$value read line done if [ "x${params['protocol']}" != "xhttps" ]; then exit fi if [ -z "${params["host"]}" ]; then exit fi lpass ls > /dev/null 2>&1 if [ $? -ne 0 ]; then if [ -z "$lpassuser" ]; then read -p "Lastpass username: " lpassuser < /dev/tty > /dev/tty fi if [ -z "$lpassuser" ]; then exit fi lpass login $lpassuser > /dev/null if [ $? -ne 0 ]; then echo "Failed to login to lastpass" > /dev/stderr exit fi fi user=`lpass show --username ${params["host"]}` pass=`lpass show --password ${params["host"]}` if [ "x$user" == "x" ] || [ "x$pass" == "x" ]; then echo "Couldn't find host in lastpass DB." > /dev/stderr exit fi echo username=$user echo password=$pass fi