forked from ungleich-public/cdist
no special case for rsync in core. handle implementation specific details in remote-copy script instead
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
parent
21b85e410e
commit
5edf39f111
2 changed files with 19 additions and 7 deletions
|
@ -77,12 +77,7 @@ class Remote(object):
|
||||||
self.log.debug("Remote transfer: %s -> %s", source, destination)
|
self.log.debug("Remote transfer: %s -> %s", source, destination)
|
||||||
self.rmdir(destination)
|
self.rmdir(destination)
|
||||||
command = self._copy.split()
|
command = self._copy.split()
|
||||||
# support rsync by appending a "/" to the source if it's a directory
|
command.extend(["-r", source, self.target_host + ":" + destination])
|
||||||
if os.path.isdir(source):
|
|
||||||
command.extend(["-r", source + "/", self.target_host + ":" + destination])
|
|
||||||
else:
|
|
||||||
command.extend(["-r", source, self.target_host + ":" + destination])
|
|
||||||
|
|
||||||
self._run_command(command)
|
self._run_command(command)
|
||||||
|
|
||||||
def run_script(self, script, env=None, return_output=False):
|
def run_script(self, script, env=None, return_output=False):
|
||||||
|
|
|
@ -24,7 +24,24 @@
|
||||||
# at /etc/passwd~cdist.
|
# at /etc/passwd~cdist.
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# __remote_copy="/path/to/this/script" cdist config target_host
|
# cdist config --remote-copy /path/to/this/script target_host
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# second last argument is the source
|
||||||
|
source_index=$(($#-1))
|
||||||
|
index=0
|
||||||
|
for arg in $@; do
|
||||||
|
if [ $index -eq 0 ]; then
|
||||||
|
# reset $@
|
||||||
|
set --
|
||||||
|
fi
|
||||||
|
index=$((index+=1))
|
||||||
|
if [ $index -eq $source_index -a -d "$arg" ]; then
|
||||||
|
echo "directory: $arg" | logger
|
||||||
|
# if the source is a directory, it has to end with "/" for rsync to do the right thing
|
||||||
|
arg="${arg%/}/"
|
||||||
|
fi
|
||||||
|
set -- "$@" "$arg"
|
||||||
|
done
|
||||||
|
|
||||||
rsync --backup --suffix=~cdist -e 'ssh -o User=root' $@
|
rsync --backup --suffix=~cdist -e 'ssh -o User=root' $@
|
||||||
|
|
Loading…
Reference in a new issue