From: Aaron Walker Date: Tue, 27 Sep 2005 12:38:56 +0000 (+0000) Subject: Fix BSD portion of egetent() so that lookup by uid/gid works as expected. X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=f20aa063045efda768114a51cc651860ecb62703;p=gentoo.git Fix BSD portion of egetent() so that lookup by uid/gid works as expected. --- diff --git a/eclass/eutils.eclass b/eclass/eutils.eclass index a272525d0656..d9b8f93454a1 100644 --- a/eclass/eutils.eclass +++ b/eclass/eutils.eclass @@ -1,6 +1,6 @@ # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.202 2005/09/26 21:54:56 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.203 2005/09/27 12:38:56 ka0ttic Exp $ # # Author: Martin Schlemmer # @@ -420,14 +420,15 @@ egetent() { ;; esac elif [[ "${USERLAND}" == "BSD" ]] ; then - local action - if [ "$1" == "passwd" ] - then - action="user" - else - action="group" + local opts action="user" + [[ $1 == "passwd" ]] || action="group" + + # lookup by uid/gid + if [[ $2 == [[:digit:]]* ]] ; then + [[ ${action} == "user" ]] && opts="-u" || opts="-g" fi - pw show "${action}" "$2" -q + + pw show ${action} ${opts} "$2" -q else which nscd >& /dev/null && nscd -i "$1" getent "$1" "$2"