|
|
@ -3,11 +3,24 @@ |
|
|
|
# Distributed under the terms of the GNU General Public License v3 |
|
|
|
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
# Creates SSH Wrapper for use with unknown hosts (requires key authentication) |
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
function makeSshWrapper() { |
|
|
|
echo "#!/bin/bash" > ${BINDIR}/ssh_wrapper.sh |
|
|
|
echo "exec ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \ |
|
|
|
\"\$@\"" >> ${BINDIR}/ssh_wrapper.sh |
|
|
|
chmod +x ${BINDIR}/ssh_wrapper.sh || return 1 |
|
|
|
export GIT_SSH="${BINDIR}/ssh_wrapper.sh" |
|
|
|
export SVN_SSH="${BINDIR}/ssh_wrapper.sh" |
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
# Downloads or updates specified GIT repository |
|
|
|
# Parameters: %dest_directory% %address% [%branch%] |
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
function checkoutGit() { |
|
|
|
function pullGit() { |
|
|
|
local DIRECTORY="${1}" |
|
|
|
local ADDRESS="${2}" |
|
|
|
local BRANCH="${3:-master}" |
|
|
@ -26,11 +39,37 @@ function checkoutGit() { |
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
# Synchronizes specified repository regardless its protocol |
|
|
|
# Parameters: %dest_directory% %protocol% %address% [%branch%] |
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
function pullRepository() { |
|
|
|
for ((i=0; $i<${FETCHTRIES}; i++)); do |
|
|
|
case "${2}" in |
|
|
|
[Gg][Ii][Tt]) |
|
|
|
pullGit ${1} ${3} ${4} && return 0 |
|
|
|
;; |
|
|
|
[Rr][Ss][Yy][Nn][Cc]) |
|
|
|
pullRsync ${1} ${3} && return 0 |
|
|
|
;; |
|
|
|
[Ss][Vv][Nn]) |
|
|
|
pullSubversion ${1} ${3} && return 0 |
|
|
|
;; |
|
|
|
*) |
|
|
|
printWarn "Tried to fetch repository using unsupported protocol!" |
|
|
|
return 1 |
|
|
|
;; |
|
|
|
esac |
|
|
|
sleep ${FETCHTIMEOUT} |
|
|
|
done |
|
|
|
return 1 |
|
|
|
} |
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
# Downloads or updates specified RSYNC repository |
|
|
|
# Parameters: %dest_directory% %address% |
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
function checkoutRsync() { |
|
|
|
function pullRsync() { |
|
|
|
DIRECTORY="${1}" |
|
|
|
ADDRESS="${2}" |
|
|
|
run "rsync --compress --delete --delete-after --devices --force --links \ |
|
|
@ -46,7 +85,7 @@ function checkoutRsync() { |
|
|
|
# Downloads or updates specified SVN repository |
|
|
|
# Parameters: %dest_directory% %address% |
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
function checkoutSubversion() { |
|
|
|
function pullSubversion() { |
|
|
|
local DIRECTORY="${1}" |
|
|
|
local ADDRESS="${2}" |
|
|
|
if [ -d ${DIRECTORY} ]; then |
|
|
@ -58,42 +97,3 @@ function checkoutSubversion() { |
|
|
|
fi |
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
# Creates SSH Wrapper for use with unknown hosts (requires key authentication) |
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
function makeSshWrapper() { |
|
|
|
echo "#!/bin/bash" > ${BINDIR}/ssh_wrapper.sh |
|
|
|
echo "exec ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \ |
|
|
|
\"\$@\"" >> ${BINDIR}/ssh_wrapper.sh |
|
|
|
chmod +x ${BINDIR}/ssh_wrapper.sh || return 1 |
|
|
|
export GIT_SSH="${BINDIR}/ssh_wrapper.sh" |
|
|
|
export SVN_SSH="${BINDIR}/ssh_wrapper.sh" |
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
# Synchronizes specified repository regardless its protocol |
|
|
|
# Parameters: %dest_directory% %protocol% %address% [%branch%] |
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
function synchronizeRepository() { |
|
|
|
for ((i=0; $i<${FETCHTRIES}; i++)); do |
|
|
|
case "${2}" in |
|
|
|
[Gg][Ii][Tt]) |
|
|
|
checkoutGit ${1} ${3} ${4} && return 0 |
|
|
|
;; |
|
|
|
[Rr][Ss][Yy][Nn][Cc]) |
|
|
|
checkoutRsync ${1} ${3} && return 0 |
|
|
|
;; |
|
|
|
[Ss][Vv][Nn]) |
|
|
|
checkoutSubversion ${1} ${3} && return 0 |
|
|
|
;; |
|
|
|
*) |
|
|
|
printWarn "Tried to fetch repository using unsupported protocol!" |
|
|
|
return 1 |
|
|
|
;; |
|
|
|
esac |
|
|
|
sleep ${FETCHTIMEOUT} |
|
|
|
done |
|
|
|
return 1 |
|
|
|
} |