- don't just bail on any error; cleanup first.
authorMark Huang <mlhuang@cs.princeton.edu>
Wed, 25 Aug 2004 14:55:21 +0000 (14:55 +0000)
committerMark Huang <mlhuang@cs.princeton.edu>
Wed, 25 Aug 2004 14:55:21 +0000 (14:55 +0000)
scripts/vuseradd

index 6e72bf5..e460256 100755 (executable)
@@ -4,7 +4,7 @@
 #
 # Copyright (c) 2004  The Trustees of Princeton University (Trustees).
 #
-# $Id: vuseradd,v 1.2 2004/08/19 22:30:30 mlh-pl_kernel Exp $
+# $Id: vuseradd,v 1.3 2004/08/23 18:30:55 mlh-pl_kernel Exp $
 #
 
 : ${UTIL_VSERVER_VARS:=$(dirname $0)/util-vserver-vars}
@@ -23,9 +23,6 @@ usage()
 [ -z "$1" ] && usage
 NAME=$1
 
-# bail on errors
-set -e
-
 # add user
 useradd -s /bin/vsh $NAME
 
@@ -57,13 +54,23 @@ if [ ! -d "$VROOTDIR/$NAME" ] ; then
        # build image in .vtmp
        TMP=$(mktemp -d "$VROOTDIR/.vtmp/$NAME.XXXXXX")
        "$PKGLIBDIR/vbuild" "$VROOTDIR/vserver-reference" "$TMP"
+       RETVAL=$?
        # move it to .vcache when complete
-       mv "$TMP" "$VROOTDIR/$NAME"
+       if [ $RETVAL -eq 0 ] ; then
+           mv "$TMP" "$VROOTDIR/$NAME"
+       else
+           echo "Error $RETVAL building $VROOTDIR/$NAME"
+           rm -rf "$TMP"
+           exit $RETVAL
+       fi
     fi
+fi
+
+if [ -d "$VROOTDIR/$NAME" ] ; then
     # fix permissions
     chmod 755 "$VROOTDIR/$NAME"
-fi
 
-# add user in vserver
-vserver $NAME suexec root groupadd -g $GROUPID $NAME
-vserver $NAME suexec root useradd -u $USERID -g $GROUPID -p '' $NAME
+    # add user in vserver
+    vserver $NAME suexec root groupadd -g $GROUPID $NAME
+    vserver $NAME suexec root useradd -u $USERID -g $GROUPID -p '' $NAME
+fi