2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / contrib / newcvsroot
blob43e8e079c0b9c131c7a142fa464b62ac2ba33fee
1 #! /usr/bin/env bash
2 # Written by Roland McGrath <roland@gnu.org>
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).
7 # Usage: newcvsroot <newroot> <modulename> <toplevel directory>
9 if [ $# != 3 ]; then
10 echo "usage: `basename $0` <newroot> <modulename> <toplevel directory>"
11 exit 1
14 root=$1; shift
15 module=$1; shift
16 topdir=$1; shift
18 rep=${root##*:}
20 case "$topdir" in
21 /*|./*|../*) echo >&2 "$0 wants relative path from top of checkout"; exit 1;;
22 esac
24 find $topdir \( -name Repository -o -name Root \) -print | while read f; do
26 case "$f" in
27 */CVS/Root) echo $root > "$f" ;;
28 */CVS/Repository)
29 r=${module}${f#${topdir}}
30 echo > "$f" $rep/${r%/CVS/Repository}
32 esac
34 done