diff options
author | Samuli Suominen <ssuominen@gentoo.org> | 2010-09-30 13:48:58 +0000 |
---|---|---|
committer | Samuli Suominen <ssuominen@gentoo.org> | 2010-09-30 13:48:58 +0000 |
commit | e4e9262a0cef887665d1facad169caed72e85326 (patch) | |
tree | 6224af93036bb77a5f8a8f50a099e6fb595113d0 /app-admin | |
parent | Version bump (diff) | |
download | historical-e4e9262a0cef887665d1facad169caed72e85326.tar.gz historical-e4e9262a0cef887665d1facad169caed72e85326.tar.bz2 historical-e4e9262a0cef887665d1facad169caed72e85326.zip |
Initial commit.
Package-Manager: portage-2.2_rc88/cvs/Linux x86_64
Diffstat (limited to 'app-admin')
-rw-r--r-- | app-admin/eselect-pinentry/ChangeLog | 10 | ||||
-rw-r--r-- | app-admin/eselect-pinentry/Manifest | 4 | ||||
-rw-r--r-- | app-admin/eselect-pinentry/eselect-pinentry-0.1.ebuild | 19 | ||||
-rw-r--r-- | app-admin/eselect-pinentry/files/eselect-pinentry-0.1 | 140 | ||||
-rw-r--r-- | app-admin/eselect-pinentry/metadata.xml | 9 |
5 files changed, 182 insertions, 0 deletions
diff --git a/app-admin/eselect-pinentry/ChangeLog b/app-admin/eselect-pinentry/ChangeLog new file mode 100644 index 000000000000..5b4e584fc5a6 --- /dev/null +++ b/app-admin/eselect-pinentry/ChangeLog @@ -0,0 +1,10 @@ +# ChangeLog for app-admin/eselect-pinentry +# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/app-admin/eselect-pinentry/ChangeLog,v 1.1 2010/09/30 13:48:58 ssuominen Exp $ + +*eselect-pinentry-0.1 (30 Sep 2010) + + 30 Sep 2010; Samuli Suominen <ssuominen@gentoo.org> + +files/eselect-pinentry-0.1, +eselect-pinentry-0.1.ebuild: + Initial commit wrt #338691 by Michał Górny. + diff --git a/app-admin/eselect-pinentry/Manifest b/app-admin/eselect-pinentry/Manifest new file mode 100644 index 000000000000..29de0f3df175 --- /dev/null +++ b/app-admin/eselect-pinentry/Manifest @@ -0,0 +1,4 @@ +AUX eselect-pinentry-0.1 3284 RMD160 b6e1620807f4050caa206dbb68cd378e6f0f9050 SHA1 33b1ba698b3521c74210ab12e198b3096e02c98c SHA256 43a6efdde18019ddc69c351fb456b517771e89d7c21794122e5cd49e3fb07478 +EBUILD eselect-pinentry-0.1.ebuild 747 RMD160 ee2c6b03e947e55b71922ee97663c0a14d9cee06 SHA1 e4d7b76b7175014482dd21469bed77ed9c3f2883 SHA256 17a1cbe8c43c224932e5b0881ee589b151489c8ae0b8e890430341f5cd9def20 +MISC ChangeLog 429 RMD160 f0518c83c17ee26755aebc05217921cc95bff3be SHA1 9e0200a9c44f6c9036f0a8b07fed6a49e73c0525 SHA256 c7d318d6f380e1c5adabee1fa698f97e4d829051af93b45245d52c1279871e06 +MISC metadata.xml 266 RMD160 b4480e6518739202d8543a84b01b53940907f016 SHA1 3a5b0bff8b6ad1614a1e8fcbecddf54b800c80a2 SHA256 7aba9af99c2de45240978680e160a1bc959795d16c7eeeae6f2822ba59da9af2 diff --git a/app-admin/eselect-pinentry/eselect-pinentry-0.1.ebuild b/app-admin/eselect-pinentry/eselect-pinentry-0.1.ebuild new file mode 100644 index 000000000000..1e6d438f67ff --- /dev/null +++ b/app-admin/eselect-pinentry/eselect-pinentry-0.1.ebuild @@ -0,0 +1,19 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-admin/eselect-pinentry/eselect-pinentry-0.1.ebuild,v 1.1 2010/09/30 13:48:58 ssuominen Exp $ + +DESCRIPTION="Manage /usr/bin/pinentry symlink" +HOMEPAGE="http://www.gentoo.org/" +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="" + +RDEPEND="app-admin/eselect" + +src_install() { + insinto /usr/share/eselect/modules + newins "${FILESDIR}"/${P} pinentry.eselect || die +} diff --git a/app-admin/eselect-pinentry/files/eselect-pinentry-0.1 b/app-admin/eselect-pinentry/files/eselect-pinentry-0.1 new file mode 100644 index 000000000000..8bddc5b9bc4a --- /dev/null +++ b/app-admin/eselect-pinentry/files/eselect-pinentry-0.1 @@ -0,0 +1,140 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id: eselect-pinentry-0.1,v 1.1 2010/09/30 13:48:58 ssuominen Exp $ + +# Based on select-sh by Michał Górny + +DESCRIPTION="Manage /usr/bin/pinentry symlink" +MAINTAINER="ssuominen@gentoo.org" +VERSION="0.1" + +## 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 ${ROOT}/usr/bin/${t} ]]; then + echo ${t} + fi + done +} + +# set the pinentry symlink +set_symlinks() { + local target="${1}" targets + + [[ ! -L ${ROOT}/usr/bin/pinentry && -e ${ROOT}/usr/bin/pinentry ]] && \ + die -q "/usr/bin/pinentry is not a symlink!" + + if is_number "${target}" && [[ ${target} -ge 1 ]]; then + targets=( $(find_targets) ) + target=${targets[target-1]} + fi + + if [[ -x ${ROOT}/usr/bin/${target} ]]; then + local tmpf="${ROOT}"/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}" "${ROOT}"/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 ${ROOT}/usr/bin/pinentry ]]; then + write_kv_list_entry "$(basename $(readlink ${ROOT}/usr/bin/pinentry))" "" + elif [[ -e ${ROOT}/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 ${ROOT}/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 ${ROOT}/usr/bin/pinentry && -x ${ROOT}/usr/bin/pinentry ]] && \ + return + + set_symlinks 1 +} diff --git a/app-admin/eselect-pinentry/metadata.xml b/app-admin/eselect-pinentry/metadata.xml new file mode 100644 index 000000000000..7cc5007c5d79 --- /dev/null +++ b/app-admin/eselect-pinentry/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>no-herd</herd> + <maintainer> + <email>ssuominen@gentoo.org</email> + <name>Samuli Suominen</name> + </maintainer> +</pkgmetadata> |