pinentry/pinentry-wrapper
DistroBaker 3365f307a0 Merged update from upstream sources
This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/pinentry.git#df36c013d5db9d129a67d7829bc7312f5f4877ca
2021-02-04 13:51:39 +00:00

83 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/sh
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2009 Fedora Project
# Copyright (c) 2014-2015 Red Hat
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugzilla.redhat.com/
#
# Anna Bernathova <anicka@novell.com> 2006
# Pavel Nemec <pnemec@novell.com> 2006
# Rex Dieter <rdieter@fedoraproject.org> 2009
# Pavol Rusnak <prusnak@novell.com> 2009
# Boris Ranto <branto@redhat.com> 2014
#
# use proper binary (pinentry-qt, pinentry-gnome, pinentry-gtk-2 or pinentry-curses)
kde_running=
arg=
display=
# look for a --display option
for opt in "$@"; do
if [ "$opt" = "--display" ]; then
arg=1
elif [ -n "$arg" ]; then
display="$opt"
else
arg=
fi
done
# export DISPLAY if pinentry is meant to be run on a different display
# check the KDE_FULL_SESSION variable otherwise
if [ -n "$display" -a "$DISPLAY" != "$display" ]; then
export DISPLAY="$display"
elif [ -n "$KDE_FULL_SESSION" ]; then
kde_running=1
kde_ver="$KDE_SESSION_VERSION"
fi
# Check for presence of xprop binary
type xprop >/dev/null 2>/dev/null
XPROP=$?
if [ -n "$DISPLAY" -a $XPROP -eq 0 ]; then
xprop -root | grep "^KDE_FULL_SESSION" >/dev/null 2>/dev/null
if test $? -eq 0; then
kde_running=1
kde_ver="`xprop -root | sed -n 's/KDE_SESSION_VERSION(CARDINAL) = //p'`" 2>/dev/null
fi
fi
# if a user supplied a pinentry binary, use it
if [ -n "$PINENTRY_BINARY" ];
then
export PINENTRY_BINARY="$PINENTRY_BINARY"
# if KDE is detected and pinentry-qt exists, use pinentry-qt
elif [ -n "$kde_running" -a -x /usr/bin/pinentry-qt ]
then
export PINENTRY_BINARY="/usr/bin/pinentry-qt"
# otherwise test if pinentry-gnome3 is installed
elif [ -n "$DISPLAY" -a -x /usr/bin/pinentry-gnome3 ]
then
export PINENTRY_BINARY="/usr/bin/pinentry-gnome3"
# otherwise test if pinentry-gtk-2 is installed
elif [ -n "$DISPLAY" -a -x /usr/bin/pinentry-gtk-2 ]
then
export PINENTRY_BINARY="/usr/bin/pinentry-gtk-2"
# otherwise test if pinentry-qt exists although KDE is not detected
elif [ -n "$DISPLAY" -a -x /usr/bin/pinentry-qt ]
then
export PINENTRY_BINARY="/usr/bin/pinentry-qt"
# use pinentry-tty if installed
elif [ -x /usr/bin/pinentry-tty ]
then
export PINENTRY_BINARY="/usr/bin/pinentry-tty"
# pinentry-curses is installed by default
else
export PINENTRY_BINARY="/usr/bin/pinentry-curses"
fi
exec $PINENTRY_BINARY "$@"