From 607ca8f9a2252f9d93e9ce1b6af792ac75d3951c Mon Sep 17 00:00:00 2001 From: Aaron LI Date: Tue, 20 Feb 2018 21:03:23 +0800 Subject: gpg: add pinentry and gpg2-x11 shim scripts for zsh & gpg integration Credit: https://blog.mrloop.com/workflow/2017/02/09/pin-entry.html --- bin/gpg2-x11 | 18 ++++++++++++++++++ bin/pinentry | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100755 bin/gpg2-x11 create mode 100755 bin/pinentry diff --git a/bin/gpg2-x11 b/bin/gpg2-x11 new file mode 100755 index 0000000..db0d53f --- /dev/null +++ b/bin/gpg2-x11 @@ -0,0 +1,18 @@ +#!/bin/sh +# +# `gpg2` shim to support force use the graphical pinentry. +# See also: `~/bin/pinentry-app' +# +# Credit: http://blog.mrloop.com/workflow/2017/02/09/pin-entry.html +# +# Aaron LI +# 2018-01-13 +# + + +GPG2=$(which gpg2) +CFG=${XDG_RUNTIME_DIR}/pinentry-app +echo "x11" > ${CFG} +exec ${GPG2} "$@" + +# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=sh: # diff --git a/bin/pinentry b/bin/pinentry new file mode 100755 index 0000000..524bc59 --- /dev/null +++ b/bin/pinentry @@ -0,0 +1,34 @@ +#!/bin/sh +# +# PINentry shim to support both terminal and graphical usages. +# +# Credit: http://blog.mrloop.com/workflow/2017/02/09/pin-entry.html +# +# Aaron LI +# 2018-01-13 +# + +# GPG2 shim to support force use the graphical pinentry (`~/bin/gpg2-x11`). +# ------------------------------------------------------------------>8 +# #!/bin/sh +# GPG2=$(which gpg2) || exit 1 +# CFG=${XDG_RUNTIME_DIR}/pinentry-app +# echo "x11" > ${CFG} +# exec ${GPG2} "$@" +# ------------------------------------------------------------------>8 + +ENTRY_TERM="curses" # PIN entry variant for terminal (and default) +ENTRY_X11="gtk-2" # for X11 usage + +CFG=${XDG_RUNTIME_DIR}/pinentry-app +TYPE=$([ -f ${CFG} ] && cat ${CFG}) +if [ -n "${TYPE}" ] && [ "${TYPE}" = "x11" ]; then + ENTRY="${ENTRY_X11}" +else + ENTRY="${ENTRY_TERM}" +fi + +PINENTRY=$(which "pinentry-${ENTRY}") || exit 1 +exec ${PINENTRY} "$@" + +# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=sh: # -- cgit v1.2.2