From adab5aeec61fe929e5a817ec8034d98caab9ddbe Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 19 Oct 2022 19:58:53 +0100 Subject: gentoo auto-resync : 19:10:2022 - 19:58:53 --- eclass/acct-group.eclass | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'eclass/acct-group.eclass') diff --git a/eclass/acct-group.eclass b/eclass/acct-group.eclass index 3d02e4f713b4..590a2f20ed8e 100644 --- a/eclass/acct-group.eclass +++ b/eclass/acct-group.eclass @@ -4,6 +4,7 @@ # @ECLASS: acct-group.eclass # @MAINTAINER: # Michał Górny +# Mike Gilbert # @AUTHOR: # Michael Orlitzky # Michał Górny @@ -40,7 +41,7 @@ case ${EAPI:-0} in *) die "EAPI=${EAPI:-0} not supported";; esac -inherit user +inherit user-info [[ ${CATEGORY} == acct-group ]] || die "Ebuild error: this eclass can be used only in acct-group category!" @@ -156,8 +157,30 @@ acct-group_src_install() { acct-group_pkg_preinst() { debug-print-function ${FUNCNAME} "${@}" - enewgroup ${ACCT_GROUP_ENFORCE_ID:+-F} "${ACCT_GROUP_NAME}" \ - "${_ACCT_GROUP_ID}" + if [[ ${EUID} -ne 0 ]]; then + einfo "Insufficient privileges to execute ${FUNCNAME[0]}" + return + fi + + if egetent group "${ACCT_GROUP_NAME}" >/dev/null; then + elog "Group ${ACCT_GROUP_NAME} already exists" + return + fi + + local opts=( --system ) + + if [[ ${_ACCT_GROUP_ID} -ne -1 ]] && + ! egetent group "${_ACCT_GROUP_ID}" >/dev/null + then + opts+=( --gid "${_ACCT_GROUP_ID}" ) + fi + + if [[ -n ${ROOT} ]]; then + opts+=( --prefix "${ROOT}" ) + fi + + elog "Adding group ${ACCT_GROUP_NAME}" + groupadd "${opts[@]}" "${ACCT_GROUP_NAME}" || die } fi -- cgit v1.2.3