add initial version of __rsync

Signed-off-by: Nico Schottelius <nico@freiheit.schottelius.org>
This commit is contained in:
Nico Schottelius 2015-02-11 15:56:45 +01:00
parent 6e483497de
commit 3cc2f13b9b
7 changed files with 120 additions and 0 deletions

View file

@ -0,0 +1,19 @@
source_dir=$(cat "$__object/parameter/source-dir")
remote_user=$(cat "$__object/parameter/remote-user")
if [ -f "$__object/parameter/destination-dir" ]; then
destination_dir=$(cat "$__object/parameter/destination-dir")
else
destination_dir="$__object_id"
fi
set --
if [ -f "$__object/parameter/rsync-opts" ]; then
while read opts; do
set -- "$@" "$opts"
done
fi
echo rsync -a \
--no-owner --no-group \
-q "$@" "${source_dir}/" "${remote_user}@${__target_host}:$destination_dir"

View file

@ -0,0 +1,17 @@
if [ -f "$__object/parameter/destination-dir" ]; then
destination_dir=$(cat "$__object/parameter/destination-dir")
else
destination_dir="$__object_id"
fi
ownergroup=""
if [ -f "$__object/parameter/owner" ]; then
ownergroup=$(cat "$__object/parameter/owner")
fi
if [ -f "$__object/parameter/group" ]; then
ownergroup=":$(cat "$__object/parameter/group")"
fi
if [ "$ownergroup" ]; then
echo chown -R "$ownergroup" "$destination_dir"
fi

View file

@ -0,0 +1,77 @@
cdist-type__rsync(7)
====================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-type__rsync - Mirror directories using rsync
DESCRIPTION
-----------
This cdist type allows you to mirror local directories to the
target host using rsync.
Rsync will be installed in the manifest of the type.
If group or owner are giveng, a recursive chown
will be executed on the target host.
REQUIRED PARAMETERS
-------------------
source::
Where to take files from
OPTIONAL PARAMETERS
-------------------
group::
Group to chgrp to.
owner::
User to chown to.
destination::
Use this as the base destination instead of the object id
remote-user::
Use this user instead of the default "root" for rsync operations.
MESSAGES
--------
NONE
EXAMPLES
--------
--------------------------------------------------------------------------------
# You can use any source directory
__rsync /tmp/testdir \
--source /etc
# Use source from type
__rsync /etc \
--source "$__type/files/package"
# Allow multiple __rsync objects to write to the same dir
__rsync mystuff \
--destination /usr/local/bin \
--source "$__type/files/package"
__rsync otherstuff \
--destination /usr/local/bin \
--source "$__type/files/package2"
--------------------------------------------------------------------------------
SEE ALSO
--------
- cdist-type(7)
COPYING
-------
Copyright \(C) 2015 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -0,0 +1 @@
__package rsync

View file

@ -0,0 +1 @@
root

View file

@ -0,0 +1,4 @@
destination
owner
group
remote-user

View file

@ -0,0 +1 @@
source-dir