make sure the SSH key is loaded before doing git operations
- ID
1a033bf- date
2023-06-06 16:18:14+00:00- author
Alex Chan <alex@alexwlchan.net>- parent
e53cdaa- message
make sure the SSH key is loaded before doing git operations- changed files
4 files, 22 additions
Changed files
git/_ensure_ssh_key_loaded (0) → git/_ensure_ssh_key_loaded (408)
diff --git a/git/_ensure_ssh_key_loaded b/git/_ensure_ssh_key_loaded
new file mode 100755
index 0000000..3143dc9
--- /dev/null
+++ b/git/_ensure_ssh_key_loaded
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+# This script should run before any Git operations that interact with
+# a remote; they ensure my SSH key is loaded by the macOS Keychain before
+# trying to push/pull anything.
+
+set -o errexit
+set -o nounset
+
+has_ssh_identity_loaded() {
+ ssh-add -l >/dev/null
+}
+
+if ! has_ssh_identity_loaded
+then
+ ssh-add --apple-use-keychain $(find ~/.ssh -name 'id_*' | grep -v '.pub$' | head -n 1)
+fi
\ No newline at end of file
git/gf (257) → git/gf (281)
diff --git a/git/gf b/git/gf
index 1e9e3d5..6a67982 100755
--- a/git/gf
+++ b/git/gf
@@ -7,4 +7,6 @@
set -o errexit
set -o nounset
+_ensure_ssh_key_loaded
+
git fetch origin --prune
git/gm (414) → git/gm (438)
diff --git a/git/gm b/git/gm
index f0d7a04..d0caa46 100755
--- a/git/gm
+++ b/git/gm
@@ -4,6 +4,8 @@
set -o errexit
set -o nounset
+_ensure_ssh_key_loaded
+
# Checking for the branch first is a bit slower, but avoids a potentially
# confusing warning immediately before the pull:
#
git/gp (263) → git/gp (287)
diff --git a/git/gp b/git/gp
index 83c8fa9..f11d9d6 100755
--- a/git/gp
+++ b/git/gp
@@ -4,6 +4,8 @@
set -o errexit
set -o nounset
+_ensure_ssh_key_loaded
+
if [[ "${1:-}" == "--rebase" ]]
then
git pull origin $(git rev-parse --abbrev-ref HEAD) --rebase