|
|
@ -3,6 +3,40 @@ |
|
|
|
# Distributed under the terms of the GNU General Public License v3 |
|
|
|
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
# Creates a local mirror of specified GIT repository |
|
|
|
# Parameters: %dest_directory% %address% [%username%] |
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
function mirrorGit() { |
|
|
|
local DIRECTORY="${1}" |
|
|
|
local ADDRESS="${2}" |
|
|
|
local USER="${3:-root}" |
|
|
|
if [ -d ${DIRECTORY} ]; then |
|
|
|
cd ${DIRECTORY} |
|
|
|
run "su ${USER} -s \"/bin/sh\" -c \"git fetch -all\"" || return 1 |
|
|
|
else |
|
|
|
run "su ${USER} -s \"/bin/sh\" -c \"git clone --mirror --bare \ |
|
|
|
${ADDRESS} ${DIRECTORY}\"" || return 1 |
|
|
|
fi |
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
# Creates a local mirror of specified repository regardless its protocol |
|
|
|
# Parameters: %dest_directory% %protocol% %address% [%username%] |
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
function mirrorRepository() { |
|
|
|
case "${2}" in |
|
|
|
[Gg][Ii][Tt]) |
|
|
|
mirrorGit "${1}" "${3}" "${4}" && return 0 |
|
|
|
;; |
|
|
|
*) |
|
|
|
printWarn "Tried to mirror data using unsupported protocol (${2})!" |
|
|
|
;; |
|
|
|
esac |
|
|
|
return 1 |
|
|
|
} |
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
|
|
|
# Prepares SSH Wrappers for use with unknown hosts (requires key authentication) |
|
|
|
#------------------------------------------------------------------------------- |
|
|
|