repo-cloner/old/src/mirror-main-repo

51 lines
821 B
Plaintext
Raw Normal View History

2018-02-05 15:47:39 +01:00
#!/bin/bash
#
# Just mirror (clone or fetch) specified git repository
# - no other mess (eg submodules, just clean mirror)
#
# Usage:
# mirror-main-repo <url>
# Unofficial strict mode
set -euo pipefail
IFS=$'\n\t'
source $(dirname $(realpath $0))/gen-mirror-path
function updateOrCreate(){
url=$1
repodir=$(getRepoPath $url)
if [ ! -d $repodir ]
then
echo "Clone of $url"
git clone --bare --mirror $url $repodir
2018-02-13 14:41:02 +01:00
# create FETCH_HEAD needed by other scripts
cd $repodir
git fetch --prune
2018-02-05 15:47:39 +01:00
else
cd $repodir
echo "Update of $url"
git fetch --prune
fi
}
function getLastCommit(){
url=$1
repodir=$(getRepoPath $url)
if [ -d $repodir ]
then
cd $repodir
git --no-pager log --full-history --all -1 --pretty=format:"%H%n"
else
echo '-'
fi
}
oldPwd=$(pwd)
updateOrCreate $1
cd $oldPwd