1#! /usr/bin/env bash 2# Written by Roland McGrath <roland@gnu.org> 3 4# Replaces all CVS/Root and CVS/Repository files in a checked-out CVS 5# tree. Requires shell with # and % variable substitution (e.g. bash). 6 7# Usage: newcvsroot <newroot> <modulename> <toplevel directory> 8 9if [ $# != 3 ]; then 10 echo "usage: `basename $0` <newroot> <modulename> <toplevel directory>" 11 exit 1 12fi 13 14root=$1; shift 15module=$1; shift 16topdir=$1; shift 17 18rep=${root##*:} 19 20case "$topdir" in 21/*|./*|../*) echo >&2 "$0 wants relative path from top of checkout"; exit 1;; 22esac 23 24find $topdir \( -name Repository -o -name Root \) -print | while read f; do 25 26case "$f" in 27*/CVS/Root) echo $root > "$f" ;; 28*/CVS/Repository) 29 r=${module}${f#${topdir}} 30 echo > "$f" $rep/${r%/CVS/Repository} 31 ;; 32esac 33 34done 35