Merge pull request #82 from jdguffey/__group

Add FreeBSD support
This commit is contained in:
Nico Schottelius 2012-07-09 08:54:32 -07:00
commit 792ba65194
2 changed files with 50 additions and 6 deletions

View file

@ -23,6 +23,12 @@
name=$__object_id name=$__object_id
os_version="$($__explorer/os_version)" os_version="$($__explorer/os_version)"
os="$($__explorer/os)"
if [ "$os" = "freebsd" ]; then
echo "FreeBSD does not have getent gshadow"
exit 0
fi
case "$os_version" in case "$os_version" in
"Red Hat Enterprise Linux Server release "[45]*|"CentOS release "[45]*) "Red Hat Enterprise Linux Server release "[45]*|"CentOS release "[45]*)

View file

@ -24,6 +24,7 @@
name="$__object_id" name="$__object_id"
os_version="$(cat "$__global/explorer/os_version")" os_version="$(cat "$__global/explorer/os_version")"
os="$(cat "$__global/explorer/os")"
cd "$__object/parameter" cd "$__object/parameter"
if grep -q "^${name}:" "$__object/explorer/group"; then if grep -q "^${name}:" "$__object/explorer/group"; then
@ -35,7 +36,10 @@ if grep -q "^${name}:" "$__object/explorer/group"; then
case "$property" in case "$property" in
password) password)
current_value="$(awk -F: '{ print $2 }' < "$__object/explorer/gshadow")" if [ "$os" = "freebsd" ]; then
echo "group/$name: FreeBSD doesn't support password modification" >&2
exit 1
fi
case "$os_version" in case "$os_version" in
"Red Hat Enterprise Linux Server release "[45]*|"CentOS release "[45]*) "Red Hat Enterprise Linux Server release "[45]*|"CentOS release "[45]*)
# TODO: Use gpasswd? Need to fix gshadow explorer first. # TODO: Use gpasswd? Need to fix gshadow explorer first.
@ -43,6 +47,7 @@ if grep -q "^${name}:" "$__object/explorer/group"; then
exit 1 exit 1
;; ;;
esac esac
current_value="$(awk -F: '{ print $2 }' < "$__object/explorer/gshadow")"
;; ;;
gid) gid)
# set to -g to support older redhat/centos # set to -g to support older redhat/centos
@ -57,15 +62,48 @@ if grep -q "^${name}:" "$__object/explorer/group"; then
done done
if [ $# -gt 0 ]; then if [ $# -gt 0 ]; then
echo groupmod "$@" "$name" case $os in
else freebsd)
true echo pw group mod "$@" "$name"
;;
*)
echo groupmod "$@" "$name"
;;
esac
fi fi
else else
for property in $(ls .); do for property in $(ls .); do
new_value="$(cat "$property")" new_value="$(cat "$property")"
set -- "$@" "--$property" \"$new_value\" if [ "$os" = "freebsd" ]; then
case $property in
gid)
proparg="-g"
;;
password)
echo "group/$name: FreeBSD doesn't support password setting" >&2
exit 1
;;
*)
# The type has been updated to support more properties than it knows how to handle for FreeBSD
# tell the user about this.
echo "Currently unknown property: $property" >&2
exit 1
;;
esac
else
proparg="--$property"
fi
set -- "$@" "$proparg" \"$new_value\"
done done
echo groupadd "$@" "$name" case $os in
freebsd)
echo pw group add "$@" "$name"
;;
*)
echo groupadd "$@" "$name"
;;
esac
fi fi