1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#!/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
'
|