From 0345600e53d4a187f28c8f5868aeabfa1a198733 Mon Sep 17 00:00:00 2001 From: belliash Date: Sat, 21 Jan 2012 15:35:21 +0100 Subject: [PATCH] create rsync mirror --- libraries/repositories | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/libraries/repositories b/libraries/repositories index 76d9f28..03cc4cb 100644 --- a/libraries/repositories +++ b/libraries/repositories @@ -30,6 +30,9 @@ function mirrorRepository() { [Gg][Ii][Tt]) mirrorGit "${1}" "${3}" "${4}" && return 0 ;; + [Rr][Ss][Yy][Nn][Cc]) + mirrorRsync "${1}" "${3}" "${4}" && return 0 + ;; *) printWarn "Tried to mirror data using unsupported protocol (${2})!" ;; @@ -37,6 +40,20 @@ function mirrorRepository() { return 1 } +#------------------------------------------------------------------------------- +# Creates a local mirror of specified RSYNC repository +# Parameters: %dest_directory% %address% [%username%] +#------------------------------------------------------------------------------- +function mirrorRsync() { + local DIRECTORY="${1}" + local ADDRESS="${2}" + local USER="${3:-root}" + run "su ${USER} -s \"/bin/sh\" -c \"rsync --compress --devices --delete \ + --links --perms --recursive --stats --timeout=${FETCHTIMEOUT} --times \ + ${ADDRESS} ${DIRECTORY}\"" + return ${?} +} + #------------------------------------------------------------------------------- # Prepares SSH Wrappers for use with unknown hosts (requires key authentication) #-------------------------------------------------------------------------------