Merge branch 'master' into only_once

This commit is contained in:
Nico Schottelius 2011-03-10 17:08:22 +01:00
commit ddc1724ae0
4 changed files with 66 additions and 23 deletions

View file

@ -0,0 +1,34 @@
#!/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
#
if [ -f "$__object/parameter/destination" ]; then
destination="$(cat "$__object/parameter/destination")"
else
destination="/$__object_id"
fi
if [ -e "$destination" ]; then
echo yes
else
echo no
fi

View file

@ -41,7 +41,11 @@ esac
# No output if file does not exist - does definitely not match the md5sum :-) # No output if file does not exist - does definitely not match the md5sum :-)
if [ -e "$destination" ]; then if [ -e "$destination" ]; then
$md5sum < "$destination" if [ -f "$destination" ]; then
$md5sum < "$destination"
else
echo "NO REGULAR FILE"
fi
else else
echo "NO FILE FOUND, NO CHECKSUM CALCULATED." echo "NO FILE FOUND, NO CHECKSUM CALCULATED."
fi fi

View file

@ -55,33 +55,38 @@ esac
if [ -f "$__object/parameter/source" ]; then if [ -f "$__object/parameter/source" ]; then
source="$(cat "$__object/parameter/source")" source="$(cat "$__object/parameter/source")"
local_md5sum="$($md5sum < "$source")" if [ -f "$source" ]; then
remote_md5sum="$(cat "$__object/explorer/md5sum")" local_md5sum="$($md5sum < "$source")"
remote_md5sum="$(cat "$__object/explorer/md5sum")"
# Is md5sum the right approach? # Is md5sum the right approach?
if [ "$local_md5sum" != "$remote_md5sum" ]; then if [ "$local_md5sum" != "$remote_md5sum" ]; then
# FIXME: This is ugly and hardcoded, replace after 1.0! # FIXME: This is ugly and hardcoded, replace after 1.0!
# Probably a better aproach is to have the user configured # Probably a better aproach is to have the user configured
# ~/.ssh/config to contain the right username # ~/.ssh/config to contain the right username
# Probably describe it in cdist-quickstart... # Probably describe it in cdist-quickstart...
scp "$source" "root@${__target_host}:${destination}" scp "$source" "root@${__target_host}:${destination}"
fi
fi fi
# No source? Create empty file/dir # No source? Create empty file/dir
else else
case "$type" in # Only touch / create if it does not exist
directory) if [ no = "$(cat "$__object/explorer/exists")" ]; then
echo mkdir \"$destination\" case "$type" in
;; directory)
echo mkdir \"$destination\"
;;
file) file)
echo touch \"$destination\" echo touch \"$destination\"
;; ;;
*) *)
echo "Unsupported type: \"$type\"" >&2 echo "Unsupported type: \"$type\"" >&2
exit 1 exit 1
;; ;;
esac esac
fi
fi fi
if [ -f "$__object/parameter/mode" ]; then if [ -f "$__object/parameter/mode" ]; then

View file

@ -29,7 +29,7 @@ fi
state="$(cat "$__object/parameter/state")" state="$(cat "$__object/parameter/state")"
is_installed="$(grep "^Status: install ok installed" "$__object/explorer/pkg_status")" is_installed="$(grep "^Status: install ok installed" "$__object/explorer/pkg_status" || true)"
case "$state" in case "$state" in
installed) installed)