pinentry/pinentry-wrapper
DistroBaker 69b3a66df6 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#5c001e46417c0a7af7cf3ea8534987ca48a52339
2021-01-06 16:12:49 +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-curses for interactive mode
elif [ -t 0 -a -t 1 ];
then
export PINENTRY_BINARY="/usr/bin/pinentry-curses"
# fallback to pinentry-tty in no TTY is provided
else
export PINENTRY_BINARY="/usr/bin/pinentry-tty"
fi
exec $PINENTRY_BINARY "$@"