blob: 8d18760b007998a6037ccc76e7d12a2a1a789fa6 [file] [log] [blame]
#!/bin/sh
#sites='ko repo github2 sfjp sf.net'
: ${sites:="github2 ko repo"}
: ${nexts:="$sites"}
: ${mirrors="github gob-private"}
push_retry () {
sites=$1
shift
while :
do
failed=
for remote in $sites
do
printf "%s: " "$remote"
git push --follow-tags "$remote" "$@" || failed="$failed$remote "
done
if test -z "$failed"
then
break
elif test "x$sites" = "x$failed"
then
echo >&2 "Failed to push to: $sites"
exit 1
fi
sites="$failed"
done
}
case " $* " in
*' +next '* | *' next '*)
push_retry "$nexts" "$@"
exit $?
;;
esac
push_retry "$sites" "$@"
case "$#,$*" in
0,* | 1,-n)
for mirror in $mirrors
do
printf "$mirror mirror: "
git push $mirror "$@" || exit $?
done
for topic in htmldocs manpages
do
printf "%s: " "$topic"
( cd ../git-$topic.git && git push "$@") || exit
done
test "$1" = '-n' || ( cd ../git-htmldocs.git && git push gh-pages )
;;
esac