aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgammafn <GammaFunction@vivaldi.net>2021-02-26 13:47:21 -0600
committergammafn <GammaFunction@vivaldi.net>2021-10-16 10:21:11 -0500
commit1adf7ed3ba3ea711e00bc21c626691c6ce3d4a1b (patch)
tree30de4b07b90100e80b0fb0ae693dec59b3b898ae
parenta3da3774a3befda7b45ec19e197e5029a3c291b2 (diff)
downloadrbw-1adf7ed3ba3ea711e00bc21c626691c6ce3d4a1b.tar.gz
rbw-1adf7ed3ba3ea711e00bc21c626691c6ce3d4a1b.zip
Add git-credential-helper
-rwxr-xr-xbin/git-credential-rbw34
1 files changed, 34 insertions, 0 deletions
diff --git a/bin/git-credential-rbw b/bin/git-credential-rbw
new file mode 100755
index 0000000..102aade
--- /dev/null
+++ b/bin/git-credential-rbw
@@ -0,0 +1,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
+ '