forked from ungleich-public/cdist
		
	__file: --type symlink supported
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								9e7a430372
							
						
					
				
			
			
				commit
				
					
						a190ee13b8
					
				
			
		
					 3 changed files with 53 additions and 36 deletions
				
			
		|  | @ -13,7 +13,7 @@ case "$__target_host" in | |||
|    # Everybody has this | ||||
|    localhost) | ||||
|       # Usual example | ||||
|       __file test --type file --destination /tmp/cdist-testfile | ||||
|       __file test --type symlink --source /etc/cdist-configured --destination /tmp/cdist-testfile | ||||
|    ;; | ||||
| 
 | ||||
|    # | ||||
|  |  | |||
|  | @ -22,8 +22,6 @@ | |||
| # example for typewrites later | ||||
| # | ||||
| 
 | ||||
| type="$(cat "$__object/parameter/type")" | ||||
| 
 | ||||
| # If destination was specified, do not use the id | ||||
| if [ -f "$__object/parameter/destination" ]; then | ||||
|    destination="$(cat "$__object/parameter/destination")" | ||||
|  | @ -40,6 +38,7 @@ if ! $(echo "$destination" | grep -q ^/); then | |||
|    exit 1 | ||||
| fi | ||||
| 
 | ||||
| # Use correct md5sum binary - MacOSx is different here | ||||
| case "$os" in | ||||
|    macosx) | ||||
|       md5sum="md5" | ||||
|  | @ -50,8 +49,21 @@ case "$os" in | |||
|    ;;   | ||||
| esac | ||||
| 
 | ||||
| # Copy source if existing | ||||
| # FIXME: directory handling not supported - add recursive flag? | ||||
| type="$(cat "$__object/parameter/type")" | ||||
| 
 | ||||
| case "$type" in | ||||
|    directory) | ||||
|       if [ -f "$__object/parameter/source" ]; then | ||||
|          echo "Source not supported for directory currently - FIXME" >&2 | ||||
|          exit 1 | ||||
|       else | ||||
|          if [ no = "$(cat "$__object/explorer/exists")" ]; then | ||||
|             echo mkdir \"$destination\" | ||||
|          fi | ||||
|       fi | ||||
|    ;; | ||||
| 
 | ||||
|    file) | ||||
|       if [ -f "$__object/parameter/source" ]; then | ||||
|          source="$(cat "$__object/parameter/source")" | ||||
| 
 | ||||
|  | @ -59,7 +71,7 @@ if [ -f "$__object/parameter/source" ]; then | |||
|             local_md5sum="$($md5sum < "$source")" | ||||
|             remote_md5sum="$(cat "$__object/explorer/md5sum")" | ||||
| 
 | ||||
|       # Is md5sum the right approach? | ||||
|             # FIXME: Is md5sum the right approach? | ||||
|             if [ "$local_md5sum" != "$remote_md5sum" ]; then | ||||
|                # FIXME: This is ugly and hardcoded, replace after 1.0! | ||||
|                # Probably a better aproach is to have the user configured | ||||
|  | @ -68,17 +80,22 @@ if [ -f "$__object/parameter/source" ]; then | |||
|                scp "$source" "root@${__target_host}:${destination}" | ||||
|             fi | ||||
|          fi | ||||
| # No source? Create empty file/dir | ||||
|       else | ||||
|    # Only touch / create if it does not exist | ||||
|          if [ no = "$(cat "$__object/explorer/exists")" ]; then | ||||
|       case "$type" in | ||||
|          directory) | ||||
|             echo mkdir \"$destination\" | ||||
|             echo touch \"$destination\" | ||||
|          fi | ||||
|       fi | ||||
|    ;; | ||||
| 
 | ||||
|          file) | ||||
|             echo touch \"$destination\" | ||||
|    symlink) | ||||
|       if [ ! -f "$__object/parameter/source" ]; then | ||||
|          echo "Source required for symlink" >&2 | ||||
|          exit 1 | ||||
|       fi | ||||
|       source="$(cat "$__object/parameter/source")" | ||||
| 
 | ||||
|       # FIXME: handle directories or document & ignore? | ||||
|       echo ln -sf \"$source\" \"$destination\" | ||||
|    ;; | ||||
| 
 | ||||
|    *) | ||||
|  | @ -86,9 +103,8 @@ else | |||
|       exit 1 | ||||
|    ;; | ||||
| esac | ||||
|    fi | ||||
| fi | ||||
| 
 | ||||
| # Mode settings | ||||
| if [ -f "$__object/parameter/mode" ]; then | ||||
|    mode="$(cat "$__object/parameters/mode")" | ||||
|    echo chmod \"$mode\" \"$destination\" | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| 	* Update regexp used for sane characters | ||||
| 	* Allow types without parameters | ||||
| 	* Allow type to be singleton (DOCUMENTATION MISSING) | ||||
| 	* Type __file learned --type symlink | ||||
| 
 | ||||
| 1.0.2: 2011-03-09 | ||||
| 	* Add manpages: cdist-type, cdist-type__file, cdist-reference, cdist-explorer | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue