aboutsummaryrefslogblamecommitdiffstats
path: root/bin/git-credential-rbw
blob: 102aade4c8de70fb1b52eed6509b01b8b5fe7012 (plain) (tree)

































                                                                          
#!/bin/sh
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

printf '%s\n' "$output" | sed -n '
	1{ s/^/password=/p }
	s/^Username: /username=/p
	s/^URI: /host=/p
	'