forked from ungleich-public/cdist
		
	remove parameter changing code in __key_value (fixes #114,#36)
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
This commit is contained in:
		
					parent
					
						
							
								344e08ddda
							
						
					
				
			
			
				commit
				
					
						0eda57986f
					
				
			
		
					 2 changed files with 35 additions and 36 deletions
				
			
		| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
#
 | 
			
		||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
 | 
			
		||||
# 2012 Nico Schottelius (nico-cdist at schottelius.org)
 | 
			
		||||
#
 | 
			
		||||
# This file is part of cdist.
 | 
			
		||||
#
 | 
			
		||||
| 
						 | 
				
			
			@ -18,42 +19,42 @@
 | 
			
		|||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
key="$(cat "$__object/parameter/key")"
 | 
			
		||||
key="$__object_id"
 | 
			
		||||
[ -f "$__object/parameter/key" ] && key="$(cat "$__object/parameter/key")"
 | 
			
		||||
state_should=present
 | 
			
		||||
[ -f "$__object/parameter/state" ] && state_should="$(cat "$__object/parameter/state")"
 | 
			
		||||
 | 
			
		||||
file="$(cat "$__object/parameter/file")"
 | 
			
		||||
delimiter="$(cat "$__object/parameter/delimiter")"
 | 
			
		||||
value="$(cat "$__object/parameter/value")"
 | 
			
		||||
 | 
			
		||||
state_is="$(cat "$__object/explorer/state")"
 | 
			
		||||
state_should="$(cat "$__object/parameter/state")"
 | 
			
		||||
 | 
			
		||||
if [ "$state_is" = "$state_should" ]; then
 | 
			
		||||
   # nothing to do
 | 
			
		||||
   exit 0
 | 
			
		||||
fi
 | 
			
		||||
[ "$state_is" = "$state_should" ] && exit 0
 | 
			
		||||
 | 
			
		||||
case "$state_should" in
 | 
			
		||||
   absent)
 | 
			
		||||
      # remove lines starting with key
 | 
			
		||||
      echo "sed '/^$key\($delimiter\+\)/d' \"$file\" > \"$file.cdist-tmp\""
 | 
			
		||||
      echo "mv \"$file.cdist-tmp\" \"$file\""
 | 
			
		||||
   ;;
 | 
			
		||||
   present)
 | 
			
		||||
      case "$state_is" in
 | 
			
		||||
         absent)
 | 
			
		||||
            # add new key and value
 | 
			
		||||
            echo "echo \"${key}${delimiter}${value}\" >> \"$file\""
 | 
			
		||||
         ;;
 | 
			
		||||
         wrongvalue)
 | 
			
		||||
            # change exisiting value
 | 
			
		||||
            echo "sed \"s|^$key\($delimiter\+\).*|$key\1$value|\" \"$file\" > \"$file.cdist-tmp\""
 | 
			
		||||
            echo "mv \"$file.cdist-tmp\" \"$file\""
 | 
			
		||||
         ;;
 | 
			
		||||
         *)
 | 
			
		||||
            echo "Unknown explorer state: $state_is" >&2
 | 
			
		||||
            exit 1
 | 
			
		||||
      esac
 | 
			
		||||
   ;;
 | 
			
		||||
   *)
 | 
			
		||||
      echo "Unknown state: $state_should" >&2
 | 
			
		||||
      exit 1
 | 
			
		||||
    absent)
 | 
			
		||||
        # remove lines starting with key
 | 
			
		||||
        echo "sed '/^$key\($delimiter\+\)/d' \"$file\" > \"$file.cdist-tmp\""
 | 
			
		||||
        echo "mv \"$file.cdist-tmp\" \"$file\""
 | 
			
		||||
    ;;
 | 
			
		||||
    present)
 | 
			
		||||
        case "$state_is" in
 | 
			
		||||
            absent)
 | 
			
		||||
                # add new key and value
 | 
			
		||||
                echo "echo \"${key}${delimiter}${value}\" >> \"$file\""
 | 
			
		||||
            ;;
 | 
			
		||||
            wrongvalue)
 | 
			
		||||
                # change exisiting value
 | 
			
		||||
                echo "sed \"s|^$key\($delimiter\+\).*|$key\1$value|\" \"$file\" > \"$file.cdist-tmp\""
 | 
			
		||||
                echo "mv \"$file.cdist-tmp\" \"$file\""
 | 
			
		||||
            ;;
 | 
			
		||||
            *)
 | 
			
		||||
                echo "Unknown explorer state: $state_is" >&2
 | 
			
		||||
                exit 1
 | 
			
		||||
        esac
 | 
			
		||||
    ;;
 | 
			
		||||
    *)
 | 
			
		||||
       echo "Unknown state: $state_should" >&2
 | 
			
		||||
       exit 1
 | 
			
		||||
esac 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
#
 | 
			
		||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
 | 
			
		||||
# 2012 Nico Schottelius (nico-cdist at schottelius.org)
 | 
			
		||||
#
 | 
			
		||||
# This file is part of cdist.
 | 
			
		||||
#
 | 
			
		||||
| 
						 | 
				
			
			@ -18,13 +19,10 @@
 | 
			
		|||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# set defaults
 | 
			
		||||
key="$(cat "$__object/parameter/key" 2>/dev/null \
 | 
			
		||||
   || echo "$__object_id" | tee "$__object/parameter/key")"
 | 
			
		||||
state="$(cat "$__object/parameter/state" 2>/dev/null \
 | 
			
		||||
   || echo "present" | tee "$__object/parameter/state")"
 | 
			
		||||
state_should=present
 | 
			
		||||
[ -f "$__object/parameter/state" ] && state_should="$(cat "$__object/parameter/state")"
 | 
			
		||||
 | 
			
		||||
if [ "$state" = "present" -a ! -f "$__object/parameter/value" ]; then
 | 
			
		||||
if [ "$state_should" = "present" -a ! -f "$__object/parameter/value" ]; then
 | 
			
		||||
   echo "Missing required parameter 'value'" >&2
 | 
			
		||||
   exit 1
 | 
			
		||||
fi 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue