diff options
Diffstat (limited to 'app-admin/eselect-pinentry/files/eselect-pinentry-0.3')
-rw-r--r-- | app-admin/eselect-pinentry/files/eselect-pinentry-0.3 | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/app-admin/eselect-pinentry/files/eselect-pinentry-0.3 b/app-admin/eselect-pinentry/files/eselect-pinentry-0.3 deleted file mode 100644 index b49175b0bb80..000000000000 --- a/app-admin/eselect-pinentry/files/eselect-pinentry-0.3 +++ /dev/null @@ -1,147 +0,0 @@ -# Copyright 1999-2010 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id: eselect-pinentry-0.3,v 1.1 2010/10/21 19:31:11 ssuominen Exp $ - -# Based on eselect-sh by Michał Górny - -DESCRIPTION="Manage /usr/bin/pinentry symlink" -MAINTAINER="ssuominen@gentoo.org" -VERSION="0.2" - -## Functions ## - -# find a list of pinentry symlink targets, best first -find_targets() { - local t - for t in \ - pinentry-qt \ - pinentry-gtk-2 \ - pinentry-qt4 \ - pinentry-curses \ - ; do - if [[ -x ${EROOT}/usr/bin/${t} ]]; then - echo ${t} - fi - done -} - -# set the pinentry symlink -set_symlinks() { - local target="${1}" targets - - [[ ! -L ${EROOT}/usr/bin/pinentry && -e ${EROOT}/usr/bin/pinentry ]] && \ - die -q "/usr/bin/pinentry is not a symlink!" - - if is_number "${target}" && [[ ${target} -ge 1 ]]; then - targets=( $(find_targets) ) - - # If no targets are found, remove the symlink and exit - if [[ -L ${EROOT}/usr/bin/pinentry && -z ${targets} ]]; then - rm -f "${EROOT}"/usr/bin/pinentry - return - fi - - target=${targets[target-1]} - fi - - if [[ -x ${EROOT}/usr/bin/${target} ]]; then - local tmpf="${EROOT}"/usr/bin/pinentry.new - # we could use 'ln -f' to directly replace the symlink - # but 'mv' is an atomic operation so it should be more fault-proof - - ln -s "${target}" "${tmpf}" || \ - die -q "Unable to create temporary symlink" - if ! mv "${tmpf}" "${EROOT}"/usr/bin/pinentry; then - rm -f "${tmpf}" # cleanup - die -q "Unable to replace /usr/bin/pinentry symlink with ${target}" - fi - else - die -q "Target '${target}' doesn't appear to be valid!" - fi -} - -### show action ### - -describe_show() { - echo "Show the current pinentry implementation" -} - -do_show() { - [[ -z ${@} ]] || die -q "Too many parameters" - - write_list_start "Current pinentry implementation:" - if [[ -L ${EROOT}/usr/bin/pinentry ]]; then - write_kv_list_entry "$(basename $(readlink ${EROOT}/usr/bin/pinentry))" "" - elif [[ -e ${EROOT}/usr/bin/pinentry ]]; then - write_kv_list_entry "(not a symlink)" "" - else - write_kv_list_entry "(unset)" "" - fi -} - -### list action ### - -describe_list() { - echo "List available pinentry implementations" -} - -do_list() { - [[ -z ${@} ]] || die -q "Too many parameters" - - local i targets - targets=( $(find_targets) ) - if [[ -n ${targets[@]} ]]; then - for (( i = 0; i < ${#targets[@]}; i++ )) ; do - [[ ${targets[${i}]} == $(basename $(readlink ${EROOT}/usr/bin/pinentry)) ]] && \ - targets[${i}]="${targets[${i}]} $(highlight '*')" - done - write_list_start "Available pinentry implementations:" - write_numbered_list "${targets[@]}" - else - write_kv_list_entry "(none found)" "" - fi -} - -### set action ### - -describe_set() { - echo "Set a new pinentry implementation" -} - -describe_set_options() { - echo "target : Target name or number (from 'list' action)" -} - -describe_set_parameters() { - echo "<target>" -} - -do_set() { - if [[ -z ${1} ]]; then - die -q "Not enough parameters" - elif [[ -n ${2} ]]; then - die -q "Too many parameters" - else - set_symlinks "${1}" - fi -} - -### update action ### - -describe_update() { - echo "Automatically update the pinentry implementation" -} - -describe_update_options() { - echo "ifunset : Do not override existing implementation" -} - -do_update() { - [[ -z ${1} || ( -z ${2} && ( ${1} == ifunset || ${1} == '--if-unset' ) ) ]] || \ - die -q "Usage error" - - [[ ( ${1} == ifunset || ${1} == '--if-unset' ) && -L ${EROOT}/usr/bin/pinentry && -x ${EROOT}/usr/bin/pinentry ]] && \ - return - - set_symlinks 1 -} |