X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mjo-overlay.git;a=blobdiff_plain;f=eclass%2Fsys-user.eclass;h=8417212dc67bdace6dbc82d5aea41f2796dcfcd3;hp=95417c79a8516ec4f53031cfe6c442d43e3eb77f;hb=569b6a8c5a6eac5f8be3f3635a3a6b18e4809d21;hpb=06ebf3a15fd51455f6c62ef075602a5d6d189be7 diff --git a/eclass/sys-user.eclass b/eclass/sys-user.eclass index 95417c7..8417212 100644 --- a/eclass/sys-user.eclass +++ b/eclass/sys-user.eclass @@ -115,8 +115,8 @@ sys-user_pkg_pretend() { # Finally, ensure that this username doesn't already exist with # another UID if its UID is supposedly important. - if [[ -n $(egetent passwd "${SYS_USER_NAME}") ]]; then - local olduid=$(sys-user_getuid "${SYS_USER_NAME}") + local olduid=$(sys-user_getuid "${SYS_USER_NAME}") + if [[ -n "${olduid}" ]]; then if [[ "${SYS_USER_UID_IMPORTANT}" == "true" ]] && \ [[ "${SYS_USER_UID}" != "${olduid}" ]]; then # The UID is important and specified, but there is already a @@ -127,7 +127,8 @@ sys-user_pkg_pretend() { } sys-user_src_configure() { - if [[ -n $(egetent passwd "${SYS_USER_NAME}") ]]; then + local current_uid=$(sys-user_getuid "${SYS_USER_NAME}") + if [[ -n "${current_uid}" ]]; then # UPGRADE PATH: This user already exists, so if the eclass # consumer doesn't care about some settings, we can reuse the # pre-existing ones. @@ -136,7 +137,7 @@ sys-user_src_configure() { # prevents us from incrementing the UID on a reinstall, and doing # so would break most packages that need a system user to exist. if [[ "${SYS_USER_UID_IMPORTANT}" != "true" ]]; then - SYS_USER_UID=$(sys-user_getuid "${SYS_USER_NAME}") + SYS_USER_UID="${current_uid}" fi if (( "${SYS_USER_HOME}" == -1 )); then @@ -177,7 +178,7 @@ sys-user_src_install() { } sys-user_pkg_preinst() { - if [[ -z $(egetent passwd "${SYS_USER_NAME}") ]]; then + if [[ -z $(sys-user_getuid "${SYS_USER_NAME}") ]]; then # The user does not already exist. This is the nice and easy # case because no matter how we got here, we want to go ahead # and create the (new) user. @@ -238,7 +239,7 @@ sys-user_pkg_postinst() { # that this new version is going to add. At this point, in our # pkg_postinst(), the old version's pkg_prerm() phase should have # already happened. - if [[ -n $(egetent passwd "${SYS_USER_NAME}") ]]; then + if [[ -n $(sys-user_getuid "${SYS_USER_NAME}") ]]; then die "User ${SYS_USER_NAME} already exists during an upgrade." else enewuser "${SYS_USER_NAME}" \ @@ -252,7 +253,7 @@ sys-user_pkg_postinst() { } sys-user_pkg_prerm() { - if [[ -z $(egetent passwd "${SYS_USER_NAME}") ]]; then + if [[ -z $(sys-user_getuid "${SYS_USER_NAME}") ]]; then # We have successfully done nothing. ewarn "Tried to remove nonexistent user ${SYS_USER_NAME}." else