| 1 |
#@ pp_backend_macos_function(func): output one platform-dependent function
|
| 2 |
pp_backend_macos_function () {
|
| 3 |
case $1 in
|
| 4 |
_pp_macos_search_unused) cat<<'.';;
|
| 5 |
# Find an unused value in the given path
|
| 6 |
# args: path attribute minid [maxid]
|
| 7 |
pp_tmp_val=$3
|
| 8 |
while :; do
|
| 9 |
test $pp_tmp_val -ge ${4:-999999} && return 1
|
| 10 |
/usr/bin/dscl . -search "$1" "$2" $pp_tmp_val |
|
| 11 |
grep . > /dev/null || break
|
| 12 |
pp_tmp_val=`expr $pp_tmp_val + 1`
|
| 13 |
done
|
| 14 |
echo $pp_tmp_val
|
| 15 |
.
|
| 16 |
pp_mkgroup:depends) echo _pp_macos_search_unused;;
|
| 17 |
pp_mkgroup) cat<<'.';;
|
| 18 |
set -e
|
| 19 |
/usr/bin/dscl . -read /Groups/"$1" >/dev/null 2>&1 && return
|
| 20 |
pp_tmp_gid=`_pp_macos_search_unused /Groups PrimaryGroupID 100`
|
| 21 |
/usr/bin/dscl . -create /Groups/"$1"
|
| 22 |
/usr/bin/dscl . -create /Groups/"$1" PrimaryGroupID $pp_tmp_gid
|
| 23 |
/usr/bin/dscl . -create /Groups/"$1" RealName "Group $1"
|
| 24 |
/usr/bin/dscl . -create /Groups/"$1" GroupMembership ""
|
| 25 |
/usr/bin/dscl . -create /Groups/"$1" Password '*'
|
| 26 |
.
|
| 27 |
pp_mkuser:depends) echo pp_mkgroup _pp_macos_search_unused;;
|
| 28 |
pp_mkuser) cat<<'.';;
|
| 29 |
set -e
|
| 30 |
/usr/bin/dscl . -read /Users/"$1" >/dev/null 2>&1 && return
|
| 31 |
pp_tmp_uid=`_pp_macos_search_unused /Users UniqueID 100`
|
| 32 |
pp_mkgroup "${2:-$1}"
|
| 33 |
pp_tmp_gid=`/usr/bin/dscl . -read /Groups/"${2:-$1}" \
|
| 34 |
PrimaryGroupID | awk '{print $2}'`
|
| 35 |
/usr/bin/dscl . -create /Users/"$1"
|
| 36 |
/usr/bin/dscl . -create /Users/"$1" PrimaryGroupID $pp_tmp_gid
|
| 37 |
/usr/bin/dscl . -create /Users/"$1" NFSHomeDirectory \
|
| 38 |
"${3:-/var/empty}"
|
| 39 |
/usr/bin/dscl . -create /Users/"$1" UserShell \
|
| 40 |
"${4:-/usr/bin/false}"
|
| 41 |
/usr/bin/dscl . -create /Users/"$1" RealName "$1"
|
| 42 |
/usr/bin/dscl . -create /Users/"$1" UniqueID $pp_tmp_uid
|
| 43 |
/usr/bin/dscl . -create /Users/"$1" Password '*'
|
| 44 |
# /usr/bin/dscl . -passwd /Users/$user "$passwd"
|
| 45 |
.
|
| 46 |
pp_havelib) cat<<'.';;
|
| 47 |
# (use otool -L to find dependent libraries)
|
| 48 |
for pp_tmp_dir in `echo "${3:+$3:}/usr/local/lib:/lib:/usr/lib" |
|
| 49 |
tr : ' '`; do
|
| 50 |
test -r "$pp_tmp_dir/lib$1{$2:+.$2}.dylib" && return 0
|
| 51 |
done
|
| 52 |
return 1
|
| 53 |
.
|
| 54 |
*) false;;
|
| 55 |
esac
|
| 56 |
}
|