support absent/present in __package_rubygem
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
This commit is contained in:
		
					parent
					
						
							
								9fab782a0c
							
						
					
				
			
			
				commit
				
					
						e4aafe0af9
					
				
			
		
					 2 changed files with 34 additions and 24 deletions
				
			
		| 
						 | 
				
			
			@ -29,7 +29,6 @@
 | 
			
		|||
os_version="$(cat "$__global/explorer/os_version")"
 | 
			
		||||
machine="$(cat "$__global/explorer/machine")"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if [ -f "$__object/parameter/flavor" ]; then
 | 
			
		||||
	flavor="$(cat "$__object/parameter/flavor")"
 | 
			
		||||
fi
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,28 +21,39 @@
 | 
			
		|||
# Manage Rubygem packages
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if [ -f "$__object/parameter/name" ]; then
 | 
			
		||||
    name="$(cat "$__object/parameter/name")"
 | 
			
		||||
else
 | 
			
		||||
    name="$__object_id"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
state="$(cat "$__object/parameter/state")"
 | 
			
		||||
is_installed="$(grep "true" "$__object/explorer/pkg_status" || true)"
 | 
			
		||||
 | 
			
		||||
case "$state" in
 | 
			
		||||
state_should="$(cat "$__object/parameter/state")"
 | 
			
		||||
# Correct pre 2.1 naming - FIXME in 2.1
 | 
			
		||||
case "$state_should" in
 | 
			
		||||
    installed)
 | 
			
		||||
      # Install only if non-existent
 | 
			
		||||
      if [ -z "$is_installed" ]; then
 | 
			
		||||
         echo gem install \"$name\" --no-ri --no-rdoc
 | 
			
		||||
      fi
 | 
			
		||||
        echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
 | 
			
		||||
        state_should="present"
 | 
			
		||||
    ;;
 | 
			
		||||
    removed)
 | 
			
		||||
      # Remove only if existent
 | 
			
		||||
      if [ -n "$is_installed" ]; then
 | 
			
		||||
        echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
 | 
			
		||||
        state_should="absent"
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if grep -q true "$__object/explorer/pkg_status"; then
 | 
			
		||||
    state_is="present"
 | 
			
		||||
else
 | 
			
		||||
    state_is="absent"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
[ "$state_is" = "$state_should ] && exit 0
 | 
			
		||||
 | 
			
		||||
case "$state_should" in
 | 
			
		||||
    present)
 | 
			
		||||
        echo gem install \"$name\" --no-ri --no-rdoc
 | 
			
		||||
    ;;
 | 
			
		||||
    absent)
 | 
			
		||||
        echo gem uninstall \"$name\"
 | 
			
		||||
      fi
 | 
			
		||||
    ;;
 | 
			
		||||
    *)
 | 
			
		||||
        echo "Unknown state: $state" >&2
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue