Wed Apr 3 09:35:20 2013 UTC ()
Fix typo in comment.


(jperkin)
diff -r1.3 -r1.4 pkgsrc/mk/pkginstall/usergroupfuncs

cvs diff -r1.3 -r1.4 pkgsrc/mk/pkginstall/usergroupfuncs (switch to unified diff)

--- pkgsrc/mk/pkginstall/usergroupfuncs 2007/07/12 19:41:46 1.3
+++ pkgsrc/mk/pkginstall/usergroupfuncs 2013/04/03 09:35:19 1.4
@@ -1,148 +1,148 @@ @@ -1,148 +1,148 @@
1# $NetBSD: usergroupfuncs,v 1.3 2007/07/12 19:41:46 jlam Exp $ 1# $NetBSD: usergroupfuncs,v 1.4 2013/04/03 09:35:19 jperkin Exp $
2# 2#
3# Default implementations of user_exists() and group_exists() shell 3# Default implementations of user_exists() and group_exists() shell
4# functions for checking the existence of users and groups, and of 4# functions for checking the existence of users and groups, and of
5# adduser() and addgroup() shell functions for adding users and groups. 5# adduser() and addgroup() shell functions for adding users and groups.
6# Assume there are NetBSD/Solaris-compatible versions of useradd(8) and 6# Assume there are NetBSD/Solaris-compatible versions of useradd(8) and
7# groupadd(8) available through ${USERADD} and ${GROUPADD}, respectively. 7# groupadd(8) available through ${USERADD} and ${GROUPADD}, respectively.
8# 8#
9# Platform-specific replacements for this file should be located at: 9# Platform-specific replacements for this file should be located at:
10# 10#
11# pkgsrc/mk/pkginstall/usergroupfuncs.${OPSYS} 11# pkgsrc/mk/pkginstall/usergroupfuncs.${OPSYS}
12# 12#
13 13
14# group_exists group [groupid] 14# group_exists group [groupid]
15# Returns 0 if $group exists and has gid $groupid 15# Returns 0 if $group exists and has gid $groupid
16# Returns 1 if neither $group nor $groupid exist 16# Returns 1 if neither $group nor $groupid exist
17# Returns 2 if $group or $groupid exist but don't match 17# Returns 2 if $group or $groupid exist but don't match
18# Returns 3 for all errors 18# Returns 3 for all errors
19# 19#
20group_exists() 20group_exists()
21{ 21{
22 _group="$1"; _groupid="$2" 22 _group="$1"; _groupid="$2"
23 ${TEST} -n "$_group" || return 3 23 ${TEST} -n "$_group" || return 3
24 24
25 # Check using chgrp to work properly in an NSS/NIS environment. 25 # Check using chgrp to work properly in an NSS/NIS environment.
26 _tmpdir="./.pkginstall.$$" 26 _tmpdir="./.pkginstall.$$"
27 ${MKDIR} -p $_tmpdir 2>/dev/null || return 3 27 ${MKDIR} -p $_tmpdir 2>/dev/null || return 3
28 ${CHMOD} 0700 $_tmpdir 28 ${CHMOD} 0700 $_tmpdir
29 _testpath="$_tmpdir/group_exists" 29 _testpath="$_tmpdir/group_exists"
30 ${ECHO} > $_testpath 30 ${ECHO} > $_testpath
31 if ${CHGRP} $_group $_testpath >/dev/null 2>&1; then 31 if ${CHGRP} $_group $_testpath >/dev/null 2>&1; then
32 # $_group exists 32 # $_group exists
33 _id=`${LS} -ln $_testpath 2>/dev/null | ${AWK} '{ print $4 }'` 33 _id=`${LS} -ln $_testpath 2>/dev/null | ${AWK} '{ print $4 }'`
34 ${TEST} -n "$_groupid" || _groupid=$_id 34 ${TEST} -n "$_groupid" || _groupid=$_id
35 if ${TEST} "$_groupid" = "$_id"; then 35 if ${TEST} "$_groupid" = "$_id"; then
36 ${RM} -fr $_tmpdir; return 0 36 ${RM} -fr $_tmpdir; return 0
37 fi 37 fi
38 ${RM} -fr $_tmpdir; return 2 38 ${RM} -fr $_tmpdir; return 2
39 elif ${TEST} -z "$_groupid"; then 39 elif ${TEST} -z "$_groupid"; then
40 # $_group doesn't exist and $_groupid is not set 40 # $_group doesn't exist and $_groupid is not set
41 ${RM} -fr $_tmpdir; return 1 41 ${RM} -fr $_tmpdir; return 1
42 elif ${CHGRP} $_groupid $_testpath >/dev/null 2>&1; then 42 elif ${CHGRP} $_groupid $_testpath >/dev/null 2>&1; then
43 _name=`${LS} -l $_testpath 2>/dev/null | ${AWK} '{ print $4 }'` 43 _name=`${LS} -l $_testpath 2>/dev/null | ${AWK} '{ print $4 }'`
44 if ${TEST} "$_name" != "$_groupid"; then 44 if ${TEST} "$_name" != "$_groupid"; then
45 # $_group doesn't exist, but $_groupid exists 45 # $_group doesn't exist, but $_groupid exists
46 ${RM} -fr $_tmpdir; return 2 46 ${RM} -fr $_tmpdir; return 2
47 fi 47 fi
48 # neither $_group nor $_groupid exist 48 # neither $_group nor $_groupid exist
49 ${RM} -fr $_tmpdir; return 1 49 ${RM} -fr $_tmpdir; return 1
50 fi 50 fi
51 ${RM} -fr $_tmpdir; return 3 51 ${RM} -fr $_tmpdir; return 3
52} 52}
53 53
54# user_exists user [userid] 54# user_exists user [userid]
55# Returns 0 if $user exists and has uid $userid 55# Returns 0 if $user exists and has uid $userid
56# Returns 1 if neither $user nor $userid exist 56# Returns 1 if neither $user nor $userid exist
57# Returns 2 if $user or $userid exist but don't match 57# Returns 2 if $user or $userid exist but don't match
58# Returns 3 for all errors 58# Returns 3 for all errors
59# 59#
60user_exists() 60user_exists()
61{ 61{
62 _user="$1"; _userid="$2" 62 _user="$1"; _userid="$2"
63 ${TEST} -n "$_user" || return 3 63 ${TEST} -n "$_user" || return 3
64 64
65 # Check using chown to work properly in an NSS/NIS environment. 65 # Check using chown to work properly in an NSS/NIS environment.
66 _tmpdir="./.pkginstall.$$" 66 _tmpdir="./.pkginstall.$$"
67 ${MKDIR} -p $_tmpdir 2>/dev/null || return 3 67 ${MKDIR} -p $_tmpdir 2>/dev/null || return 3
68 ${CHMOD} 0700 $_tmpdir 68 ${CHMOD} 0700 $_tmpdir
69 _testpath="$_tmpdir/user_exists" 69 _testpath="$_tmpdir/user_exists"
70 ${ECHO} > $_testpath 70 ${ECHO} > $_testpath
71 if ${CHOWN} $_user $_testpath >/dev/null 2>&1; then 71 if ${CHOWN} $_user $_testpath >/dev/null 2>&1; then
72 # $_user exists 72 # $_user exists
73 _id=`${LS} -ln $_testpath 2>/dev/null | ${AWK} '{ print $3 }'` 73 _id=`${LS} -ln $_testpath 2>/dev/null | ${AWK} '{ print $3 }'`
74 ${TEST} -n "$_userid" || _userid=$_id 74 ${TEST} -n "$_userid" || _userid=$_id
75 if ${TEST} "$_userid" = "$_id"; then 75 if ${TEST} "$_userid" = "$_id"; then
76 ${RM} -fr $_tmpdir; return 0 76 ${RM} -fr $_tmpdir; return 0
77 fi 77 fi
78 ${RM} -fr $_tmpdir; return 2 78 ${RM} -fr $_tmpdir; return 2
79 elif ${TEST} -z "$_userid"; then 79 elif ${TEST} -z "$_userid"; then
80 # $_user doesn't exist and $_userid is not set 80 # $_user doesn't exist and $_userid is not set
81 ${RM} -fr $_tmpdir; return 1 81 ${RM} -fr $_tmpdir; return 1
82 elif ${CHOWN} $_userid $_testpath >/dev/null 2>&1; then 82 elif ${CHOWN} $_userid $_testpath >/dev/null 2>&1; then
83 _name=`${LS} -l $_testpath 2>/dev/null | ${AWK} '{ print $3 }'` 83 _name=`${LS} -l $_testpath 2>/dev/null | ${AWK} '{ print $3 }'`
84 if ${TEST} "$_name" != "$_userid"; then 84 if ${TEST} "$_name" != "$_userid"; then
85 # $_user doesn't exist, but $_userid exists 85 # $_user doesn't exist, but $_userid exists
86 ${RM} -fr $_tmpdir; return 2 86 ${RM} -fr $_tmpdir; return 2
87 fi 87 fi
88 # neither $_user nor $_userid exist 88 # neither $_user nor $_userid exist
89 ${RM} -fr $_tmpdir; return 1 89 ${RM} -fr $_tmpdir; return 1
90 fi 90 fi
91 ${RM} -fr $_tmpdir; return 3 91 ${RM} -fr $_tmpdir; return 3
92} 92}
93 93
94# adduser user group [userid] [descr] [home] [shell] 94# adduser user group [userid] [descr] [home] [shell]
95adduser() 95adduser()
96{ 96{
97 user="$1"; group="$2"; userid="$3" 97 user="$1"; group="$2"; userid="$3"
98 descr="$4"; home="$5" shell="$6" 98 descr="$4"; home="$5" shell="$6"
99 ${TEST} $# -eq 6 || return 1 99 ${TEST} $# -eq 6 || return 1
100 ${TEST} -n "$user" || return 2 100 ${TEST} -n "$user" || return 2
101 ${TEST} -n "$group" || return 2 101 ${TEST} -n "$group" || return 2
102 102
103 USERADD="@USERADD@" 103 USERADD="@USERADD@"
104 104
105 case $user in 105 case $user in
106 ${PKGNAME%-[0-9]*}) descr_dflt="$user user" ;; 106 ${PKGNAME%-[0-9]*}) descr_dflt="$user user" ;;
107 *) descr_dflt="${PKGNAME%-[0-9]*} $user user" ;; 107 *) descr_dflt="${PKGNAME%-[0-9]*} $user user" ;;
108 esac 108 esac
109 : ${descr:="$descr_dflt"} 109 : ${descr:="$descr_dflt"}
110 : ${home:="@PKG_USER_HOME@"} 110 : ${home:="@PKG_USER_HOME@"}
111 : ${shell:="@PKG_USER_SHELL@"} 111 : ${shell:="@PKG_USER_SHELL@"}
112 112
113 if ${TEST} -n "${USERADD}" -a -x "${USERADD}"; then 113 if ${TEST} -n "${USERADD}" -a -x "${USERADD}"; then
114 ${ECHO} "${PKGNAME}: Creating user \`\`$user''" 114 ${ECHO} "${PKGNAME}: Creating user \`\`$user''"
115 case $userid in 115 case $userid in
116 "") 116 "")
117 ${USERADD} \ 117 ${USERADD} \
118 -c "$descr" -d "$home" -s "$shell" \ 118 -c "$descr" -d "$home" -s "$shell" \
119 -g $group $user 119 -g $group $user
120 ;; 120 ;;
121 *) 121 *)
122 ${USERADD} \ 122 ${USERADD} \
123 -c "$descr" -d "$home" -s "$shell" \ 123 -c "$descr" -d "$home" -s "$shell" \
124 -g $group -u $userid $user 124 -g $group -u $userid $user
125 ;; 125 ;;
126 esac 126 esac
127 fi 127 fi
128 return 0 128 return 0
129} 129}
130 130
131# adduser group [groupid] 131# addgroup group [groupid]
132addgroup() 132addgroup()
133{ 133{
134 group="$1"; groupid="$2" 134 group="$1"; groupid="$2"
135 ${TEST} $# -eq 2 || return 1 135 ${TEST} $# -eq 2 || return 1
136 ${TEST} -n "$group" || return 2 136 ${TEST} -n "$group" || return 2
137 137
138 GROUPADD="@GROUPADD@" 138 GROUPADD="@GROUPADD@"
139 139
140 if ${TEST} -n "${GROUPADD}" -a -x "${GROUPADD}"; then 140 if ${TEST} -n "${GROUPADD}" -a -x "${GROUPADD}"; then
141 ${ECHO} "${PKGNAME}: Creating group \`\`$group''" 141 ${ECHO} "${PKGNAME}: Creating group \`\`$group''"
142 case $groupid in 142 case $groupid in
143 "") ${GROUPADD} $group ;; 143 "") ${GROUPADD} $group ;;
144 *) ${GROUPADD} -g $groupid $group ;; 144 *) ${GROUPADD} -g $groupid $group ;;
145 esac 145 esac
146 fi 146 fi
147 return 0 147 return 0
148} 148}