ulm         15/03/31 16:54:08

  Added:                eselect-pinentry-0.3 pinentry.eselect-0.4
  Log:
  Move package from app-admin to app-eselect category.
  
  (Portage version: 2.2.18/cvs/Linux x86_64, RepoMan options: --force, signed 
Manifest commit with key 9433907D693FB5B8!)

Revision  Changes    Path
1.1                  app-eselect/eselect-pinentry/files/eselect-pinentry-0.3

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-eselect/eselect-pinentry/files/eselect-pinentry-0.3?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-eselect/eselect-pinentry/files/eselect-pinentry-0.3?rev=1.1&content-type=text/plain

Index: eselect-pinentry-0.3
===================================================================
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id: eselect-pinentry-0.3,v 1.1 2015/03/31 16:54:08 ulm Exp $

# Based on eselect-sh by Michał Górny

DESCRIPTION="Manage /usr/bin/pinentry symlink"
MAINTAINER="[email protected]"
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
}



1.1                  app-eselect/eselect-pinentry/files/pinentry.eselect-0.4

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-eselect/eselect-pinentry/files/pinentry.eselect-0.4?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-eselect/eselect-pinentry/files/pinentry.eselect-0.4?rev=1.1&content-type=text/plain

Index: pinentry.eselect-0.4
===================================================================
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id: pinentry.eselect-0.4,v 1.1 2015/03/31 16:54:08 ulm Exp $

DESCRIPTION="Manage /usr/bin/pinentry implementation"
MAINTAINER="[email protected]"
VERSION="0.4"

SYMLINK_PATH=/usr/bin/pinentry
SYMLINK_TARGETS=( pinentry-qt pinentry-gtk-2 pinentry-qt4 pinentry-curses )
SYMLINK_DESCRIPTION='pinentry binary'

inherit bin-symlink




Reply via email to