|
@@ -0,0 +1,23 @@
|
|
|
|
|
+#!/bin/sh
|
|
|
|
|
+# Pick a working pinentry for this machine/session.
|
|
|
|
|
+# Preference order: Emacs pinentry (if in Emacs), mac GUI pinentry, GTK/QT, curses.
|
|
|
|
|
+
|
|
|
|
|
+# If you use pinentry-emacs and want it when Emacs is running:
|
|
|
|
|
+if command -v pinentry-emacs >/dev/null 2>&1; then
|
|
|
|
|
+ exec pinentry-emacs "$@"
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
|
|
+# macOS GUI pinentry (Homebrew paths)
|
|
|
|
|
+if [ "$(uname -s)" = "Darwin" ]; then
|
|
|
|
|
+ if [ -x /opt/homebrew/bin/pinentry-mac ]; then exec /opt/homebrew/bin/pinentry-mac "$@"; fi
|
|
|
|
|
+ if [ -x /usr/local/bin/pinentry-mac ]; then exec /usr/local/bin/pinentry-mac "$@"; fi
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
|
|
+# Common Linux GUI pinentries
|
|
|
|
|
+if command -v pinentry-gnome3 >/dev/null 2>&1; then exec pinentry-gnome3 "$@"; fi
|
|
|
|
|
+if command -v pinentry-gtk-2 >/dev/null 2>&1; then exec pinentry-gtk-2 "$@"; fi
|
|
|
|
|
+if command -v pinentry-qt >/dev/null 2>&1; then exec pinentry-qt "$@"; fi
|
|
|
|
|
+
|
|
|
|
|
+# Fallback (may fail in dumb/no-tty contexts)
|
|
|
|
|
+if command -v pinentry-curses >/dev/null 2>&1; then exec pinentry-curses "$@"; fi
|
|
|
|
|
+exec pinentry "$@"
|