diff options
Diffstat (limited to 'modules/gitmirror/templates/rsync-metadata.sh')
-rwxr-xr-x | modules/gitmirror/templates/rsync-metadata.sh | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/modules/gitmirror/templates/rsync-metadata.sh b/modules/gitmirror/templates/rsync-metadata.sh new file mode 100755 index 00000000..7176cc54 --- /dev/null +++ b/modules/gitmirror/templates/rsync-metadata.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +REPO="$1" +GITROOT="/git" +RSYNCROOT="rsync://valstar.mageia.org/git" + +if [ ! -d "$GITROOT/$REPO" ]; then + echo "No repository found $REPO" >&2 + exit 1 +fi + +cp -af "$GITROOT/$REPO/config" "$GITROOT/$REPO/config.orig" +/usr/bin/rsync -a --delete --include="description" --include="config" --include="info" --include="info/web" --include="info/web/last-modified" --exclude="*" "$RSYNCROOT/$REPO/" "$GITROOT/$REPO/" +cp -af "$GITROOT/$REPO/config" "$GITROOT/$REPO/config.upstream" +mv -f "$GITROOT/$REPO/config.orig" "$GITROOT/$REPO/config" + +OWNER=$(git config --file "$GITROOT/$REPO/config.upstream" gitweb.owner) +DESC=$(git config --file "$GITROOT/$REPO/config.upstream" gitweb.description) +rm -f "$GITROOT/$REPO/config.upstream" + +CUROWNER=$(git config --file "$GITROOT/$REPO/config" gitweb.owner) +if [ "$CUROWNER" != "$OWNER" ]; then + git config --file "$GITROOT/$REPO/config" gitweb.owner "$OWNER" +fi + +CURDESC=$(git config --file "$GITROOT/$REPO/config" gitweb.description) +if [ "$CURDESC" != "$DESC" ]; then + git config --file "$GITROOT/$REPO/config" gitweb.owner "$DESC" +fi |