Gentoo Logo
Gentoo Spaceship




Note: Due to technical difficulties, the Archives are currently not up to date. GMANE provides an alternative service for most mailing lists.
c.f. bug 424647
List Archive: gentoo-dev
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-dev@g.o
From: Ian Stakenvicius <axs@g.o>
Subject: Re: RFC: esethome
Date: Wed, 13 Jun 2012 15:35:40 -0400
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 13/06/12 03:14 PM, Mike Frysinger wrote:
> 
> eset{home,shell} don't exist today, so you should implement them
> :) -mike

RFC - heavily based on enewuser.

- --- user.eclass           [some timestamp]
+++ user.eclass.esethome  [some other timestamp]
@@ -388,3 +388,63 @@
 }

 fi
+
+# @FUNCTION: esethome
+# @USAGE: <user> <homedir>
+# @DESCRIPTION:
+# Update the home directory in a platform-agnostic way.
+# Required parameters is the username and the new home directory.
+# Specify -1 if you want to set home to the enewuser default
+# of /dev/null.
+# If the new home directory does not exist, it is created.
+# Any previously existing home directory is NOT moved.
+esethome() {
+       _assert_pkg_ebuild_phase ${FUNCNAME}
+
+       # get the username
+       local euser=$1; shift
+       if [[ -z ${euser} ]] ; then
+               eerror "No username specified !"
+               die "Cannot call esethome without a username"
+       fi
+
+       # lets see if the username already exists
+       if [[ ! -n $(egetent passwd "${euser}") ]] ; then
+               ewarn "User does not exist, cannot set home. skipping."
+               return 1
+       fi
+
+       # handle homedir
+       local ehome=$1; shift
+       if [[ -z ${ehome} ]] ; then
+               eerror "No home directory specified !"
+               die "Cannot call esethome without a home directory"
+       fi
+
+       if [[ ${ehome} == "-1" ]] ; then
+               ehome="/dev/null"
+       fi
+       einfo " - Home: ${ehome}"
+
+       # update the home directory
+       case ${CHOST} in
+       *-darwin*)
+               dscl . change "/users/${euser}" home "${ehome}"
+               ;;
+
+       *-freebsd*|*-dragonfly*)
+               pw usermod "${euser}" -d "${ehome}" || die
+               ;;
+
+       *)
+               usermod -d "${ehome}" "${euser}" || die
+               ;;
+       esac
+
+       if [[ ! -e ${ROOT}/${ehome} ]] ; then
+               einfo " - Creating ${ehome} in ${ROOT}"
+               mkdir -p "${ROOT}/${ehome}"
+               chown "${euser}" "${ROOT}/${ehome}"
+               chmod 755 "${ROOT}/${ehome}"
+       fi
+}

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)

iF4EAREIAAYFAk/Y64wACgkQ2ugaI38ACPBZYQD9EzzmBDUon1YUNxaev5ONluAX
2GA32hOyvwGs2ylZPy8A/3RN8VNsa6XI++eHRdwjpsSZLw4sTVpa+fY2LZHSnWsh
=gLrd
-----END PGP SIGNATURE-----


Replies:
Re: RFC: esethome
-- Mike Frysinger
References:
RFC: enewuser should force updates to shell and home
-- Ian Stakenvicius
Re: RFC: enewuser should force updates to shell and home
-- Mike Frysinger
Re: RFC: enewuser should force updates to shell and home
-- Ian Stakenvicius
Re: RFC: enewuser should force updates to shell and home
-- Mike Frysinger
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Re: RFC: enewuser should force updates to shell and home
Next by thread:
Re: RFC: esethome
Previous by date:
Re: RFC: enewuser should force updates to shell and home
Next by date:
Re: RFC: esethome


Updated Jun 29, 2012

Summary: Archive of the gentoo-dev mailing list.

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.