public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in app-admin/eselect-pinentry/files: eselect-pinentry-0.1
@ 2010-09-30 13:48 Samuli Suominen (ssuominen)
  0 siblings, 0 replies; 2+ messages in thread
From: Samuli Suominen (ssuominen) @ 2010-09-30 13:48 UTC (permalink / raw
  To: gentoo-commits

ssuominen    10/09/30 13:48:58

  Added:                eselect-pinentry-0.1
  Log:
  Initial commit.
  
  (Portage version: 2.2_rc88/cvs/Linux x86_64)

Revision  Changes    Path
1.1                  app-admin/eselect-pinentry/files/eselect-pinentry-0.1

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

Index: eselect-pinentry-0.1
===================================================================
# 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
}






^ permalink raw reply	[flat|nested] 2+ messages in thread

* [gentoo-commits] gentoo-x86 commit in app-admin/eselect-pinentry/files: eselect-pinentry-0.1
@ 2010-09-30 14:08 Samuli Suominen (ssuominen)
  0 siblings, 0 replies; 2+ messages in thread
From: Samuli Suominen (ssuominen) @ 2010-09-30 14:08 UTC (permalink / raw
  To: gentoo-commits

ssuominen    10/09/30 14:08:50

  Modified:             eselect-pinentry-0.1
  Log:
  typo
  
  (Portage version: 2.2_rc88/cvs/Linux x86_64)

Revision  Changes    Path
1.2                  app-admin/eselect-pinentry/files/eselect-pinentry-0.1

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-admin/eselect-pinentry/files/eselect-pinentry-0.1?rev=1.2&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-admin/eselect-pinentry/files/eselect-pinentry-0.1?rev=1.2&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-admin/eselect-pinentry/files/eselect-pinentry-0.1?r1=1.1&r2=1.2

Index: eselect-pinentry-0.1
===================================================================
RCS file: /var/cvsroot/gentoo-x86/app-admin/eselect-pinentry/files/eselect-pinentry-0.1,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- eselect-pinentry-0.1	30 Sep 2010 13:48:58 -0000	1.1
+++ eselect-pinentry-0.1	30 Sep 2010 14:08:50 -0000	1.2
@@ -1,8 +1,8 @@
 # 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 $
+# $Id: eselect-pinentry-0.1,v 1.2 2010/09/30 14:08:50 ssuominen Exp $
 
-# Based on select-sh by Michał Górny
+# Based on eselect-sh by Michał Górny
 
 DESCRIPTION="Manage /usr/bin/pinentry symlink"
 MAINTAINER="ssuominen@gentoo.org"






^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-09-30 14:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-30 13:48 [gentoo-commits] gentoo-x86 commit in app-admin/eselect-pinentry/files: eselect-pinentry-0.1 Samuli Suominen (ssuominen)
  -- strict thread matches above, loose matches on Subject: below --
2010-09-30 14:08 Samuli Suominen (ssuominen)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox