[OE-core] [PATCH V6 2/3] useradd.bbclass: code refactor

2013-07-17 Thread Qi.Chen
From: Chen Qi qi.c...@windriver.com

The basic functions have moved to useradd_base.bbclass. So this class
only needs to inherit useradd_base.bbclass and use the functions defined
there. The reason is to avoid code duplication with extrausers.bbclass.

[YOCTO #4074]

Signed-off-by: Chen Qi qi.c...@windriver.com
---
 meta/classes/useradd.bbclass |   99 --
 1 file changed, 8 insertions(+), 91 deletions(-)

diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass
index 3fe011d..9b3ac25 100644
--- a/meta/classes/useradd.bbclass
+++ b/meta/classes/useradd.bbclass
@@ -1,3 +1,5 @@
+inherit useradd_base
+
 # base-passwd-cross provides the default passwd and group files in the
 # target sysroot, and shadow -native and -sysroot provide the utilities
 # and support files needed to add and modify user and group accounts
@@ -44,30 +46,7 @@ if test x$GROUPADD_PARAM != x; then
opts=`echo $GROUPADD_PARAM | cut -d ';' -f 1`
remaining=`echo $GROUPADD_PARAM | cut -d ';' -f 2-`
while test x$opts != x; do
-   groupname=`echo $opts | awk '{ print $NF }'`
-   group_exists=`grep ^$groupname: $SYSROOT/etc/group || true`
-   if test x$group_exists = x; then
-   count=1
-   while true; do
-   eval $PSEUDO groupadd $OPT $opts || true
-   group_exists=`grep ^$groupname: 
$SYSROOT/etc/group || true`
-   if test x$group_exists = x; then
-   # File locking issues can require us to 
retry the command
-   echo WARNING: groupadd command did not 
succeed. Retrying...
-   sleep 1
-   else
-   break
-   fi
-   count=`expr $count + 1`
-   if test $count = 11; then
-   echo ERROR: tried running groupadd 
command 10 times without success, giving up
-   exit 1
-   fi
-   done
-   else
-   echo Note: group $groupname already exists, not 
re-creating it
-   fi
-
+   perform_groupadd $SYSROOT $OPT $opts 10
if test x$opts = x$remaining; then
break
fi
@@ -83,32 +62,7 @@ if test x$USERADD_PARAM != x; then
opts=`echo $USERADD_PARAM | cut -d ';' -f 1`
remaining=`echo $USERADD_PARAM | cut -d ';' -f 2-`
while test x$opts != x; do
-   # useradd does not have a -f option, so we have to check if the
-   # username already exists manually
-   username=`echo $opts | awk '{ print $NF }'`
-   user_exists=`grep ^$username: $SYSROOT/etc/passwd || true`
-   if test x$user_exists = x; then
-   count=1
-   while true; do
-   eval $PSEUDO useradd $OPT $opts || true
-   user_exists=`grep ^$username: 
$SYSROOT/etc/passwd || true`
-   if test x$user_exists = x; then
-   # File locking issues can require us to 
retry the command
-   echo WARNING: useradd command did not 
succeed. Retrying...
-   sleep 1
-   else
-   break
-   fi
-   count=`expr $count + 1`
-   if test $count = 11; then
-   echo ERROR: tried running useradd 
command 10 times without success, giving up
-   exit 1
-   fi
-   done
-   else
-   echo Note: username $username already exists, not 
re-creating it
-   fi
-
+   perform_useradd $SYSROOT $OPT $opts 10
if test x$opts = x$remaining; then
break
fi
@@ -119,58 +73,18 @@ fi
 
 if test x$GROUPMEMS_PARAM != x; then
echo Running groupmems commands...
-   # groupmems fails if /etc/gshadow does not exist
-   if [ -f $SYSROOT${sysconfdir}/gshadow ]; then
-   gshadow=yes
-   else
-   gshadow=no
-   touch $SYSROOT${sysconfdir}/gshadow
-   fi
# Invoke multiple instances of groupmems for parameter lists
# separated by ';'
opts=`echo $GROUPMEMS_PARAM | cut -d ';' -f 1`
remaining=`echo $GROUPMEMS_PARAM | cut -d ';' -f 2-`
while test x$opts != x; do
-   

Re: [OE-core] [PATCH V6 2/3] useradd.bbclass: code refactor

2013-07-17 Thread Otavio Salvador
On Wed, Jul 17, 2013 at 3:08 AM,  qi.c...@windriver.com wrote:
 From: Chen Qi qi.c...@windriver.com

 The basic functions have moved to useradd_base.bbclass. So this class
 only needs to inherit useradd_base.bbclass and use the functions defined
 there. The reason is to avoid code duplication with extrausers.bbclass.

 [YOCTO #4074]

 Signed-off-by: Chen Qi qi.c...@windriver.com

I think this patch (2) should be squashed onto patch 1; so it easy git
bisect in case we're trying to figure out a regression.

--
Otavio Salvador O.S. Systems
http://www.ossystems.com.brhttp://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854Mobile: +1 (347) 903-9750
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core