commit: acd0e195b2fba241d5eac52e34676a4a00493c2b
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 17 18:33:13 2022 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct 19 13:30:04 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=acd0e195
acct-group.eclass: inline groupadd
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
eclass/acct-group.eclass | 30 +++++++++++++++++++++++++++---
1 file changed, 27 insertions(+), 3 deletions(-)
diff --git a/eclass/acct-group.eclass b/eclass/acct-group.eclass
index 3d02e4f713b4..3f38ac36ec4d 100644
--- a/eclass/acct-group.eclass
+++ b/eclass/acct-group.eclass
@@ -40,7 +40,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 +156,32 @@ 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 [[ -z ${ACCT_GROUP_ENFORCE_ID} ]]; then
+ opts+=( --force )
+ fi
+
+ if [[ ${_ACCT_GROUP_ID} -ne -1 ]]; 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