#! /usr/bin/env bash
# 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 "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
