فهرست منبع

Group/user script fixes

John C. Frickson 9 سال پیش
والد
کامیت
ecdd820409
1فایلهای تغییر یافته به همراه52 افزوده شده و 39 حذف شده
  1. 52 39
      build-aux/add_group_user

+ 52 - 39
build-aux/add_group_user

@@ -13,100 +13,113 @@ rc=0
 #-------------------------------------
 group_exists(){
 	case $dist in
-		osx)	return `dscl . -read /Groups/$gid >/dev/null 2>&1; echo $?`	;;
-		hpux)	return `grget -n $gid >/dev/null 2>&1; echo $?`	;;
-		aix)	return `lsgroup -a $gid >/dev/null 2>&1; echo $?`	;;
-		*)		return `getent group $gid > /dev/null 2>&1; echo $?`	;;
+		osx)	rc=`dscl . -read /Groups/$gid >/dev/null 2>&1; echo $?`	;;
+		hpux)	rc=`grget -n $gid >/dev/null 2>&1; echo $?`	;;
+		aix)	rc=`lsgroup -a $gid >/dev/null 2>&1; echo $?`	;;
+		*)		rc=`getent group $gid > /dev/null 2>&1; echo $?`	;;
 	esac
+
+	echo $rc
 }
 
 #------------------------
 # Add the specified user
 #------------------------
 add_user(){
-	if `id "$uid" > /dev/null 2>&1; echo $?` eq 0; then
-		echo "User $uid already exists"
-		return 0
+	rc=`id "$uid" > /dev/null 2>&1; echo $?`
+	if test $rc -eq 0; then
+		echo "User $uid already exists" > /dev/stderr
+		echo 0
+		return
 	fi
 
 	case $dist in
 		aix)
-			echo useradd -g $gid $uid
-			return `useradd -g $gid $uid; echo $?`
+			echo useradd -g $gid $uid > /dev/stderr
+			rc=`useradd -g $gid $uid; echo $?`
 			;;
 
 		hpux|solaris)
-			echo useradd -m -g $gid $uid
-			return `useradd -m -g $gid $uid; echo $?`
+			echo useradd -m -g $gid $uid > /dev/stderr
+			rc=`useradd -m -g $gid $uid; echo $?`
 			;;
 
 		osx)
 			newid=`dscl . -list /Users UniqueID | tr -s ' ' | cut -d' ' -f2 | sort -n | tail -1`
-			newid=`expr 1 + $$newid`
-			echo dscl . -create /Users/$uid
+			newid=`expr 1 + $newid`
+			echo dscl . -create /Users/$uid > /dev/stderr
 			dscl . -create /Users/$uid
-			echo dscl . -create /Users/$uid UniqueID $newid
-			dscl . -create /Users/$$uid UniqueID $newid
-			echo dscl . -create /Users/$uid UserShell /usr/bin/false
+			echo dscl . -create /Users/$uid UniqueID $newid > /dev/stderr
+			dscl . -create /Users/$uid UniqueID $newid
+			echo dscl . -create /Users/$uid UserShell /usr/bin/false > /dev/stderr
 			dscl . -create /Users/$uid UserShell /usr/bin/false
-			echo dscl . -create /Users/$$uid PrimaryGroupID 20
+			echo dscl . -create /Users/$uid PrimaryGroupID 20 > /dev/stderr
 			dscl . -create /Users/$uid PrimaryGroupID 20
-			echo dscl . -append /Groups/$gid GroupMembership $uid
-			return `dscl . -append /Groups/$gid GroupMembership $uid; echo $?`
+			echo dscl . -append /Groups/$gid GroupMembership $uid > /dev/stderr
+			rc=`dscl . -append /Groups/$gid GroupMembership $uid; echo $?`
 			;;
 
 		freebsd)
-			echo pw add user -g $gid $uid
-			return `pw add user -g $gid $uid; echo $?`
+			echo pw add user -g $gid $uid > /dev/stderr
+			rc=`pw add user -g $gid $uid; echo $?`
 			;;
 
 		*)
-			echo useradd -r -g $gid $uid
-			return `useradd -r -g $gid $uid; echo $?`
+			echo useradd -r -g $gid $uid > /dev/stderr
+			rc=`useradd -r -g $gid $uid; echo $?`
 			;;
 	esac
+
+	echo $rc
 }
 
 #-------------------------
 # Add the specified group
 #-------------------------
 add_group(){
-	if `group_exists` eq 0; then
-		echo "Group $gid already exists"
-		return 0
+	rc=`group_exists`
+	if test $rc -eq 0; then
+		echo "Group $gid already exists" > /dev/stderr
+		echo 0
+		return
 	fi
 
 	case $dist in
 		aix)
-			echo mkgroup $gid
-			return `mkgroup "$gid"; echo $?`
+			echo mkgroup $gid > /dev/stderr
+			rc=`mkgroup "$gid"; echo $?`
 			;;
 
 		hpux|solaris)
-			echo groupadd $gid
-			return `groupadd "$gid"; echo $?`
+			echo groupadd $gid > /dev/stderr
+			rc=`groupadd "$gid"; echo $?`
 			;;
 
 		osx)
 			newid=`dscl . -list /Groups gid | tr -s ' ' | cut -d' ' -f2 | sort -n | tail -1`
-			newid=`expr 1 + $$newid`
-			echo dscl . -create /Groups/$gid gid $newid
-			return `dscl . -create /Groups/$gid gid $newid; echo $?`
+			newid=`expr 1 + $newid`
+			echo dscl . -create /Groups/$gid gid $newid > /dev/stderr
+			rc=`dscl . -create /Groups/$gid gid $newid; echo $?`
 			;;
 
 		freebsd)
-			echo pw add group $gid
-			return `pw add group $gid; echo $?`
+			echo pw add group $gid > /dev/stderr
+			rc=`pw add group $gid; echo $?`
+			;;
 
 		*)
-			echo groupadd -r $gid
-			return `groupadd -r $gid; echo $?`
+			echo groupadd -r $gid > /dev/stderr
+			rc=`groupadd -r $gid; echo $?`
 			;;
 	esac
+
+	echo $rc
 }
 
 
-if test `add_group` ne 0; then
+rc=`add_group`
+if test $rc -ne 0; then
 	exit 1;
 fi
-exit `add_user`
+rc=`add_user`
+exit $rc