forked from ungleich-public/cdist
		
	Merge pull request #155 from statianzo/directory-owner
Set permissions on existing directory
This commit is contained in:
		
				commit
				
					
						c620c2fa29
					
				
			
		
					 4 changed files with 110 additions and 14 deletions
				
			
		
							
								
								
									
										28
									
								
								cdist/conf/type/__directory/explorer/group
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								cdist/conf/type/__directory/explorer/group
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | ||||||
|  | #!/bin/sh | ||||||
|  | # | ||||||
|  | # 2011 Nico Schottelius (nico-cdist at schottelius.org) | ||||||
|  | # | ||||||
|  | # This file is part of cdist. | ||||||
|  | # | ||||||
|  | # cdist is free software: you can redistribute it and/or modify | ||||||
|  | # it under the terms of the GNU General Public License as published by | ||||||
|  | # the Free Software Foundation, either version 3 of the License, or | ||||||
|  | # (at your option) any later version. | ||||||
|  | # | ||||||
|  | # cdist is distributed in the hope that it will be useful, | ||||||
|  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | # GNU General Public License for more details. | ||||||
|  | # | ||||||
|  | # You should have received a copy of the GNU General Public License | ||||||
|  | # along with cdist. If not, see <http://www.gnu.org/licenses/>. | ||||||
|  | # | ||||||
|  | # | ||||||
|  | # Check whether file exists or not | ||||||
|  | # | ||||||
|  | 
 | ||||||
|  | destination="/$__object_id" | ||||||
|  | 
 | ||||||
|  | if [ -e "$destination" ]; then | ||||||
|  |   stat -c "%G" "$destination" | ||||||
|  | fi | ||||||
							
								
								
									
										28
									
								
								cdist/conf/type/__directory/explorer/mode
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								cdist/conf/type/__directory/explorer/mode
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | ||||||
|  | #!/bin/sh | ||||||
|  | # | ||||||
|  | # 2011 Nico Schottelius (nico-cdist at schottelius.org) | ||||||
|  | # | ||||||
|  | # This file is part of cdist. | ||||||
|  | # | ||||||
|  | # cdist is free software: you can redistribute it and/or modify | ||||||
|  | # it under the terms of the GNU General Public License as published by | ||||||
|  | # the Free Software Foundation, either version 3 of the License, or | ||||||
|  | # (at your option) any later version. | ||||||
|  | # | ||||||
|  | # cdist is distributed in the hope that it will be useful, | ||||||
|  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | # GNU General Public License for more details. | ||||||
|  | # | ||||||
|  | # You should have received a copy of the GNU General Public License | ||||||
|  | # along with cdist. If not, see <http://www.gnu.org/licenses/>. | ||||||
|  | # | ||||||
|  | # | ||||||
|  | # Check whether file exists or not | ||||||
|  | # | ||||||
|  | 
 | ||||||
|  | destination="/$__object_id" | ||||||
|  | 
 | ||||||
|  | if [ -e "$destination" ]; then | ||||||
|  |   stat -c "%a" "$destination" | ||||||
|  | fi | ||||||
							
								
								
									
										28
									
								
								cdist/conf/type/__directory/explorer/owner
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								cdist/conf/type/__directory/explorer/owner
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | ||||||
|  | #!/bin/sh | ||||||
|  | # | ||||||
|  | # 2011 Nico Schottelius (nico-cdist at schottelius.org) | ||||||
|  | # | ||||||
|  | # This file is part of cdist. | ||||||
|  | # | ||||||
|  | # cdist is free software: you can redistribute it and/or modify | ||||||
|  | # it under the terms of the GNU General Public License as published by | ||||||
|  | # the Free Software Foundation, either version 3 of the License, or | ||||||
|  | # (at your option) any later version. | ||||||
|  | # | ||||||
|  | # cdist is distributed in the hope that it will be useful, | ||||||
|  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | # GNU General Public License for more details. | ||||||
|  | # | ||||||
|  | # You should have received a copy of the GNU General Public License | ||||||
|  | # along with cdist. If not, see <http://www.gnu.org/licenses/>. | ||||||
|  | # | ||||||
|  | # | ||||||
|  | # Check whether file exists or not | ||||||
|  | # | ||||||
|  | 
 | ||||||
|  | destination="/$__object_id" | ||||||
|  | 
 | ||||||
|  | if [ -e "$destination" ]; then | ||||||
|  |   stat -c "%U" "$destination" | ||||||
|  | fi | ||||||
|  | @ -18,13 +18,21 @@ | ||||||
| # along with cdist. If not, see <http://www.gnu.org/licenses/>. | # along with cdist. If not, see <http://www.gnu.org/licenses/>. | ||||||
| # | # | ||||||
| 
 | 
 | ||||||
| state_should="present" |  | ||||||
| [ -f "$__object/parameter/state" ] && state_should="$(cat "$__object/parameter/state")" |  | ||||||
| state_is="$(cat "$__object/explorer/state")" |  | ||||||
| [ "$state_should" = "$state_is" ] && exit 0 |  | ||||||
| 
 |  | ||||||
| destination="/$__object_id" | destination="/$__object_id" | ||||||
| 
 | 
 | ||||||
|  | state_is="$(cat "$__object/explorer/state")" | ||||||
|  | owner_is="$(cat "$__object/explorer/owner")" | ||||||
|  | group_is="$(cat "$__object/explorer/group")" | ||||||
|  | mode_is="$(cat "$__object/explorer/mode")" | ||||||
|  | 
 | ||||||
|  | state_should="present" | ||||||
|  | [ -f "$__object/parameter/state" ]     && state_should="$(cat "$__object/parameter/state")" | ||||||
|  | mode="" | ||||||
|  | [ -f "$__object/parameter/mode" ]      && mode="$(cat "$__object/parameter/mode")" | ||||||
|  | owner="" | ||||||
|  | [ -f "$__object/parameter/owner" ]     && owner="$(cat "$__object/parameter/owner")" | ||||||
|  | group="" | ||||||
|  | [ -f "$__object/parameter/group" ]     && group="$(cat "$__object/parameter/group")" | ||||||
| mkdiropt="" | mkdiropt="" | ||||||
| [ -f "$__object/parameter/parents" ]   && mkdiropt="-p" | [ -f "$__object/parameter/parents" ]   && mkdiropt="-p" | ||||||
| recursive="" | recursive="" | ||||||
|  | @ -32,25 +40,29 @@ recursive="" | ||||||
| 
 | 
 | ||||||
| case "$state_should" in | case "$state_should" in | ||||||
|     present) |     present) | ||||||
|  |         if [ "$state_is" != "present" ]; then | ||||||
|             echo mkdir $mkdiropt \"$destination\" |             echo mkdir $mkdiropt \"$destination\" | ||||||
|  |         fi | ||||||
| 
 | 
 | ||||||
|         # Mode settings |         # Mode settings | ||||||
|         if [ -f "$__object/parameter/mode" ]; then |         if [ "$mode" ] && [ "$mode_is" != "$mode" -o -n "$recursive" ]; then | ||||||
|             echo chmod \"$(cat "$__object/parameter/mode")\" \"$destination\" |             echo chmod $recursive \"$mode\" \"$destination\" | ||||||
|         fi |         fi | ||||||
| 
 | 
 | ||||||
|         # Group |         # Group | ||||||
|         if [ -f "$__object/parameter/group" ]; then |         if [ "$group" ] && [ "$group_is" != "$group" -o -n "$recursive" ]; then | ||||||
|             echo chgrp $recursive \"$(cat "$__object/parameter/group")\" \"$destination\" |             echo chgrp $recursive \"$group\" \"$destination\" | ||||||
|         fi |         fi | ||||||
| 
 | 
 | ||||||
|         # Owner |         # Owner | ||||||
|         if [ -f "$__object/parameter/owner" ]; then |         if [ "$owner" ] && [ "$owner_is" != "$owner" -o -n "$recursive" ]; then | ||||||
|             echo chown $recursive \"$(cat "$__object/parameter/owner")\" \"$destination\" |             echo chown $recursive \"$owner\" \"$destination\" | ||||||
|         fi |         fi | ||||||
|     ;; |     ;; | ||||||
|     absent) |     absent) | ||||||
|  |         if [ "$state_is" != "absent" ]; then | ||||||
|           echo rm -rf \"$destination\" |           echo rm -rf \"$destination\" | ||||||
|  |         fi | ||||||
|     ;; |     ;; | ||||||
|     *) |     *) | ||||||
|         echo "Unknown state: $state_should" >&2 |         echo "Unknown state: $state_should" >&2 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue