#! /usr/bin/env bash
# APPLE LOCAL file mainline
# Written by Roland McGrath <roland@gnu.org>

# Replaces all CVS/Root and CVS/Repository files in a checked-out CVS
# tree. Requires shell with # and % variable substitution (e.g. bash).

# Usage: newcvsroot <newroot> <modulename> <toplevel directory>

if [ $# != 3 ]; then
    echo "Note to svn users: use svn switch --relocate instead."
    echo
    echo "usage: `basename $0` <newroot> <modulename> <toplevel directory>"
    exit 1
fi

root=$1; shift
module=$1; shift
topdir=$1; shift

rep=${root##*:}

case "$topdir" in
/*|./*|../*) echo >&2 "$0 wants relative path from top of checkout"; exit 1;;
esac

find $topdir \( -name Repository -o -name Root \) -print | while read f; do

case "$f" in
*/CVS/Root) echo $root > "$f" ;;
*/CVS/Repository)
  r=${module}${f#${topdir}}
  echo > "$f" $rep/${r%/CVS/Repository}
  ;;
esac

done
