Revision 438:34214e593c67 extra

View differences:

extra/soundsoftware/convert-external-repos.rb
62 62
$http_pass    = ''
63 63
$test         = false
64 64

  
65
$mirrordir    = '/var/mirror'
66

  
65 67
def log(text, options={})
66 68
  level = options[:level] || 0
67 69
  puts text unless $quiet or level > $verbose
......
168 170
  end
169 171

  
170 172
  system($command, project.identifier, repos_path, external_url)
173
  
174
  $cache_clearance_file = File.join($mirrordir, project.identifier, 'url_changed')
175
  if File.file?($cache_clearance_file)
176
    log("\tproject repo url has changed, requesting cache clearance")
177
    if project.post(:repository_cache, :key => $api_key)
178
      File.delete($cache_clearance_file)
179
    end
180
  end
171 181

  
172 182
end
173 183
  
extra/soundsoftware/update-external-repo.sh
60 60

  
61 61
success=""
62 62

  
63
# If we have a record of the last successfully updated remote repo
64
# URL, check it against our current remote URL: if it has changed, we
65
# will need to start again with a new clone rather than pulling
66
# updates into the existing local mirror
67

  
68
successfile="$project_mirror/last_successful_url"
69
if [ -f "$successfile" ]; then
70
    last=$(cat "$successfile")
71
    if [ x"$last" = x"$remote_repo" ]; then
72
	echo "$$: Remote URL is unchanged from last successful update"
73
    else
74
	echo "$$: Remote URL has changed since last successful update:"
75
	echo "$$: Last URL was $last, current is $remote_repo"
76
	suffix="$$.$(date +%s)"
77
	echo "$$: Moving existing repos to $suffix suffix and starting afresh"
78
	mv "$project_repo_mirror" "$project_repo_mirror"."$suffix"
79
	mv "$local_repo" "$local_repo"."$suffix"
80
	mv "$successfile" "$successfile"."$suffix"
81
	touch "$project_mirror/url_changed"
82
    fi
83
fi
84

  
63 85
if [ -d "$project_repo_mirror" ]; then
64 86

  
65 87
    # Repo mirror exists: update it
......
96 118

  
97 119
if [ -n "$success" ]; then
98 120
    echo "$$: Update successful, pulling into local repo at $local_repo"
121
    if [ ! -d "$local_repo" ]; then
122
	"$hg" init "$local_repo"
123
    fi
99 124
    if [ -d "$project_repo_mirror/.git" ]; then
100
	if [ ! -d "$local_repo" ]; then
101
	    "$hg" init "$local_repo"
102
	fi
103
	( cd "$local_repo" && "$hg" --config extensions.hggit= pull "$project_repo_mirror" )
125
	( cd "$local_repo" && "$hg" --config extensions.hggit= pull "$project_repo_mirror" ) && echo "$remote_repo" > "$successfile"
104 126
    else 
105
	( cd "$local_repo" && "$hg" pull "$project_repo_mirror" )
127
	( cd "$local_repo" && "$hg" pull "$project_repo_mirror" ) && echo "$remote_repo" > "$successfile"
106 128
    fi
107 129
fi

Also available in: Unified diff