forked from ungleich-public/cdist
		
	Merge branch 'master' of github.com:telmich/cdist
This commit is contained in:
		
				commit
				
					
						8fb5bc33b9
					
				
			
		
					 2 changed files with 50 additions and 6 deletions
				
			
		|  | @ -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]*) | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
|  | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue