Merge pull request #768 from 4nd3r/fixes_for_solaris
[RFC] fixes for solaris
This commit is contained in:
		
				commit
				
					
						c2d32a78a9
					
				
			
		
					 3 changed files with 60 additions and 12 deletions
				
			
		| 
						 | 
					@ -39,6 +39,35 @@ group: %g %G
 | 
				
			||||||
mode: %a %A
 | 
					mode: %a %A
 | 
				
			||||||
" "$destination"
 | 
					" "$destination"
 | 
				
			||||||
      ;;
 | 
					      ;;
 | 
				
			||||||
 | 
					    solaris)
 | 
				
			||||||
 | 
					        ls1="$( ls -ld "$destination" )"
 | 
				
			||||||
 | 
					        ls2="$( ls -ldn "$destination" )"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if [ -f "$__object/parameter/mode" ]
 | 
				
			||||||
 | 
					        then mode_should="$( cat "$__object/parameter/mode" )"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # yes, it is ugly hack, but if you know better way...
 | 
				
			||||||
 | 
					        if [ -z "$( find "$destination" -perm "$mode_should" )" ]
 | 
				
			||||||
 | 
					        then octets=888
 | 
				
			||||||
 | 
					        else octets="$( echo "$mode_should" | sed 's/^0//' )"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        case "$( echo "$ls1" | cut -c1-1 )" in
 | 
				
			||||||
 | 
					            -) echo 'type: regular file' ;;
 | 
				
			||||||
 | 
					            d) echo 'type: directory' ;;
 | 
				
			||||||
 | 
					        esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        echo "owner: $( echo "$ls2" \
 | 
				
			||||||
 | 
					            | awk '{print $3}' ) $( echo "$ls1" \
 | 
				
			||||||
 | 
					                | awk '{print $3}' )"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        echo "group: $( echo "$ls2" \
 | 
				
			||||||
 | 
					            | awk '{print $4}' ) $( echo "$ls1" \
 | 
				
			||||||
 | 
					                | awk '{print $4}' )"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        echo "mode: $octets $( echo "$ls1" | awk '{print $1}' )"
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
   *)
 | 
					   *)
 | 
				
			||||||
       stat --printf="type: %F
 | 
					       stat --printf="type: %F
 | 
				
			||||||
owner: %u %U
 | 
					owner: %u %U
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,6 +45,37 @@ size: %s
 | 
				
			||||||
links: %h
 | 
					links: %h
 | 
				
			||||||
" "$destination"
 | 
					" "$destination"
 | 
				
			||||||
      ;;
 | 
					      ;;
 | 
				
			||||||
 | 
					    solaris)
 | 
				
			||||||
 | 
					        ls1="$( ls -ld "$destination" )"
 | 
				
			||||||
 | 
					        ls2="$( ls -ldn "$destination" )"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if [ -f "$__object/parameter/mode" ]
 | 
				
			||||||
 | 
					        then mode_should="$( cat "$__object/parameter/mode" )"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # yes, it is ugly hack, but if you know better way...
 | 
				
			||||||
 | 
					        if [ -z "$( find "$destination" -perm "$mode_should" )" ]
 | 
				
			||||||
 | 
					        then octets=888
 | 
				
			||||||
 | 
					        else octets="$( echo "$mode_should" | sed 's/^0//' )"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        case "$( echo "$ls1" | cut -c1-1 )" in
 | 
				
			||||||
 | 
					            -) echo 'type: regular file' ;;
 | 
				
			||||||
 | 
					            d) echo 'type: directory' ;;
 | 
				
			||||||
 | 
					        esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        echo "owner: $( echo "$ls2" \
 | 
				
			||||||
 | 
					            | awk '{print $3}' ) $( echo "$ls1" \
 | 
				
			||||||
 | 
					                | awk '{print $3}' )"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        echo "group: $( echo "$ls2" \
 | 
				
			||||||
 | 
					            | awk '{print $4}' ) $( echo "$ls1" \
 | 
				
			||||||
 | 
					                | awk '{print $4}' )"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        echo "mode: $octets $( echo "$ls1" | awk '{print $1}' )"
 | 
				
			||||||
 | 
					        echo "size: $( echo "$ls1" | awk '{print $5}' )"
 | 
				
			||||||
 | 
					        echo "links: $( echo "$ls1" | awk '{print $2}' )"
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
   *)
 | 
					   *)
 | 
				
			||||||
      stat --printf="type: %F
 | 
					      stat --printf="type: %F
 | 
				
			||||||
owner: %u %U
 | 
					owner: %u %U
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,18 +45,6 @@ if [ ! -f "$__object/parameter/noparent" ] || [ ! -f "$__object/parameter/nofile
 | 
				
			||||||
   fi
 | 
					   fi
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Remove legacy blocks created by old versions of this type
 | 
					 | 
				
			||||||
# FIXME: remove me in 3.2+
 | 
					 | 
				
			||||||
__block "$__object_name" \
 | 
					 | 
				
			||||||
   --file "$file" \
 | 
					 | 
				
			||||||
   --prefix "#cdist:$__object_name" \
 | 
					 | 
				
			||||||
   --suffix "#/cdist:$__object_name" \
 | 
					 | 
				
			||||||
   --state 'absent' \
 | 
					 | 
				
			||||||
   --text - << DONE
 | 
					 | 
				
			||||||
remove legacy block
 | 
					 | 
				
			||||||
DONE
 | 
					 | 
				
			||||||
export require="__block/$__object_name"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
_cksum() {
 | 
					_cksum() {
 | 
				
			||||||
   echo "$1" | cksum | cut -d' ' -f 1
 | 
					   echo "$1" | cksum | cut -d' ' -f 1
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue