comparison extra/soundsoftware/update-external-repo.sh @ 433:7fd72f22a42b bug_168

Ensure we always use the same version of hg
author Chris Cannam
date Mon, 06 Jun 2011 10:56:57 +0100
parents d3af621ba9d4
children 4eb486dbf730
comparison
equal deleted inserted replaced
431:d3af621ba9d4 433:7fd72f22a42b
1 #!/bin/sh 1 #!/bin/sh
2 2
3 mirrordir="/var/mirror" 3 mirrordir="/var/mirror"
4 logfile="/var/www/test-cannam/log/update-external-repo.log" 4 hg="/usr/local/bin/hg"
5 5
6 project="$1" 6 project="$1"
7 local_repo="$2" 7 local_repo="$2"
8 remote_repo="$3" 8 remote_repo="$3"
9 9
64 64
65 # Repo mirror exists: update it 65 # Repo mirror exists: update it
66 echo "$$: Mirror for project $project exists at $project_repo_mirror, updating" 1>&2 66 echo "$$: Mirror for project $project exists at $project_repo_mirror, updating" 1>&2
67 67
68 if [ -d "$project_repo_mirror/.hg" ]; then 68 if [ -d "$project_repo_mirror/.hg" ]; then
69 hg --config extensions.convert= convert --datesort "$remote_repo" "$project_repo_mirror" && success=true 69 "$hg" --config extensions.convert= convert --datesort "$remote_repo" "$project_repo_mirror" && success=true
70 elif [ -d "$project_repo_mirror/.git" ]; then 70 elif [ -d "$project_repo_mirror/.git" ]; then
71 ( cd "$project_repo_mirror" && git pull "$remote_repo" master ) && success=true 71 ( cd "$project_repo_mirror" && git pull "$remote_repo" master ) && success=true
72 else 72 else
73 echo "$$: ERROR: Repo mirror dir $project_repo_mirror exists but is not an Hg or git repo" 1>&2 73 echo "$$: ERROR: Repo mirror dir $project_repo_mirror exists but is not an Hg or git repo" 1>&2
74 fi 74 fi
79 echo "$$: Mirror for project $project does not yet exist at $project_repo_mirror, trying to convert or clone" 1>&2 79 echo "$$: Mirror for project $project does not yet exist at $project_repo_mirror, trying to convert or clone" 1>&2
80 80
81 case "$remote_repo" in 81 case "$remote_repo" in
82 *git*) 82 *git*)
83 git clone "$remote_repo" "$project_repo_mirror" || 83 git clone "$remote_repo" "$project_repo_mirror" ||
84 hg --config extensions.convert= convert --datesort "$remote_repo" "$project_repo_mirror" 84 "$hg" --config extensions.convert= convert --datesort "$remote_repo" "$project_repo_mirror"
85 ;; 85 ;;
86 *) 86 *)
87 hg --config extensions.convert= convert --datesort "$remote_repo" "$project_repo_mirror" || 87 "$hg" --config extensions.convert= convert --datesort "$remote_repo" "$project_repo_mirror" ||
88 git clone "$remote_repo" "$project_repo_mirror" || 88 git clone "$remote_repo" "$project_repo_mirror" ||
89 hg clone "$remote_repo" "$project_repo_mirror" 89 "$hg" clone "$remote_repo" "$project_repo_mirror"
90 ;; 90 ;;
91 esac && success=true 91 esac && success=true
92 92
93 fi 93 fi
94 94
96 96
97 if [ -n "$success" ]; then 97 if [ -n "$success" ]; then
98 echo "$$: Update successful, pulling into local repo at $local_repo" 98 echo "$$: Update successful, pulling into local repo at $local_repo"
99 if [ -d "$project_repo_mirror/.git" ]; then 99 if [ -d "$project_repo_mirror/.git" ]; then
100 if [ ! -d "$local_repo" ]; then 100 if [ ! -d "$local_repo" ]; then
101 hg init "$local_repo" 101 "$hg" init "$local_repo"
102 fi 102 fi
103 ( cd "$local_repo" && hg --config extensions.hgext.git= pull "$project_repo_mirror" ) 103 ( cd "$local_repo" && "$hg" --config extensions.hggit= pull "$project_repo_mirror" )
104 else 104 else
105 ( cd "$local_repo" && hg pull "$project_repo_mirror" ) 105 ( cd "$local_repo" && "$hg" pull "$project_repo_mirror" )
106 fi 106 fi
107 fi 107 fi