Skip to main content

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