mirror and merge git repositories
[infrastructure.git] / scripts / git-mirror.sh
1 #!/bin/bash
2
3 MIRROR="git://git.planet-lab.org"
4 LOCAL="/git"
5
6 function mirror () {
7     for arg in "$@" ; do
8         REPO=${arg}
9         REPO_NAME=${REPO}.git
10         MIRROR_REPO=${MIRROR}/${REPO_NAME}
11         LOCAL_REPO=${LOCAL}/${REPO_NAME}
12
13         if [ -d ${REPO} ]
14         then
15             echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx pulling from ${REPO_NAME}"
16             pushd ${REPO}
17             git pull --tags
18             git pull
19             popd
20         else
21             echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx mirroring in ${REPO_NAME} for the first time"
22             git clone ${MIRROR_REPO}
23             pushd ${REPO}
24             git remote add local_master ${LOCAL_REPO}
25             popd
26         fi
27
28         echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx pushing ${REPO_NAME} to local master"
29         pushd ${REPO}
30         git push local_master
31         git push --tags local_master
32         popd
33     done
34 }
35
36 args="$@"
37 [[ -z "$args" ]] && args=$(ls /svn)
38
39 mirror $args
40