Revision 436:4eb486dbf730 extra

View differences:

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
    fi
82
fi
83

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

  
65 86
    # Repo mirror exists: update it
......
96 117

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

Also available in: Unified diff