#! /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