dotfiles/private_dot_local/bin/executable_git-credential-rbw.tmpl

48 lines
1.1 KiB
Cheetah
Raw Normal View History

2024-02-07 06:52:48 +00:00
#!/usr/bin/env bash
#
# rbw git-credential helper
# Based on https://github.com/lastpass/lastpass-cli/blob/master/contrib/examples/git-credential-lastpass
# A credential helper for git to retrieve usernames and passwords from rbw.
# 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 rbw
2024-02-07 06:52:48 +00:00
set -f
[ "$1" = get ] || exit
while read -r line; do
case $line in
protocol=*)
protocol=${line#*=} ;;
host=*)
host=${line#*=} ;;
username=*)
user=${line#*=} ;;
esac
done
output=
#shellcheck disable=2154
for arg in \
"${protocol:+$protocol://}$host" \
"$host" \
"${host2=${host%.*}}" \
"${host2#*.}"
do
# exit on first good result
[ -n "$user" ] && output=$(rbw get --full "$arg" "$user") && break
output=$(rbw get --full "$arg") && break
done || exit
2024-06-18 15:43:37 +00:00
{{ if eq .chezmoi.os "darwin" }}
printf '%s\n' "$output" | gsed -n '
{{- else }}
2024-02-07 06:52:48 +00:00
printf '%s\n' "$output" | sed -n '
2024-06-18 15:43:37 +00:00
{{- end }}
2024-02-07 06:52:48 +00:00
1{ s/^/password=/p }
s/^Username: /username=/p
s/^URI: /host=/p
'