#!/bin/bash

set -e

usage () { echo >&2 'usage: cvs-adjustroot OLD NEW'; exit 1; }

case "$#.$1" in
4.--reinvoke)	reinvoke=true; shift	;;
*.-*)		usage			;;
2.*)		reinvoke=false		;;
1.*)		usage			;;
0.*)		usage			;;
*)		usage			;;
esac

old="$1"; shift
new="$1"; shift

if $reinvoke; then
	filename="$1";
	cmp -- "$filename" <(printf "%s\n" "$old")
	printf "%s\n" "$new" >"$filename".new
	mv -f -- "$filename".new "$filename"
	exit 0
fi

find -path '*/CVS/Root' -exec cvs-adjustroot --reinvoke "$old" "$new" '{}' ';'
