#!/bin/bash
# create a local mirror of an online SVN repository
# usage: ./svn-mirror [init|sync] <absolute path to local repo> [source url]
# Copyright (C) 2009-2010 Mathias Lafeldt <misfire@debugon.org>

cmd="${1}"
dst="${2}"
src="${3}"

if [ "${cmd}" == "init" ]; then
    [ ! -d "${dst}" ] && mkdir -p "${dst}" || exit 1
    svnadmin create "${dst}" || exit 1
    echo '#!/bin/sh' > "${dst}/hooks/pre-revprop-change" || exit 1
    chmod +x "${dst}/hooks/pre-revprop-change" || exit 1
    svnsync init "file://${dst}" "${src}"
elif [ "${cmd}" == "sync" ]; then
    svnsync sync "file://${dst}"
else
    echo "invalid command" >&2
    exit 1
fi

