summaryrefslogtreecommitdiff
path: root/eclass/acct-group.eclass
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-10-19 19:58:53 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-10-19 19:58:53 +0100
commitadab5aeec61fe929e5a817ec8034d98caab9ddbe (patch)
treeb1edc4f239d68ba31ab2e5ba8def5091023c2691 /eclass/acct-group.eclass
parent12652841746da7ae2f03b8b0c571a9bd5033e15c (diff)
gentoo auto-resync : 19:10:2022 - 19:58:53
Diffstat (limited to 'eclass/acct-group.eclass')
-rw-r--r--eclass/acct-group.eclass29
1 files changed, 26 insertions, 3 deletions
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 <mgorny@gentoo.org>
+# Mike Gilbert <floppym@gentoo.org>
# @AUTHOR:
# Michael Orlitzky <mjo@gentoo.org>
# Michał Górny <mgorny@gentoo.org>
@@ -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