#!/bin/sh
ENTRY=6.0
echo "Pull up the following revisions(s) (requested by X in ticket #X):" > commitmsg
runfile()
{
local IFS
IFS='
'
for line in `awk '{
if($1=="cvs" && $2=="rdiff") line=$0
else line=line $0
if(substr($NF,length($NF),1)=="\\\\") {
line=substr(line,1,length(line)-1)
} else {
if(substr(line,1,10)=="cvs rdiff ") printf "%s\n",line
line=""
}
}'`
do
IFS='
'
set $line
if [ "$3" = "-u" ]; then
shift
fi
opt="$3 $4"
revfrom="${3#-r}"
revto="${4#-r}"
rev=`echo | awk -v from="$revfrom" -v to="$revto" '{
sub("^1.","",from)
sub("^1.","",to)
if(from+1==to) printf "1.%d\n", to
else printf "1.%d-1.%d\n", from+1, to
}'`
shift 4
for file in $*
do
file="${file#src/}"
echo "cvs diff -kk $opt ${file}"
echo -n "OK? (y/n/p)[y]:" > /dev/tty
read r < /dev/tty
case "$r" in
n*|N*)
continue
;;
p*|P*)
echo "Patching ${file} via patch"
viapatch=1
;;
*)
echo "Patching ${file}"
viapatch=0
;;
esac
if [ "$viapatch" = 0 ]; then
cvs diff -kk $opt ${file} | patch
fi
echo "${file} ${rev}" >> doc/CHANGES-$ENTRY
echo " ${file}: revision ${rev}" >> commitmsg
done
done
}
if [ "$1" = "-u" ]; then
echo "Please enter URLs"
while read url
do
[ -z "$url" ] && break
echo "Fetching $url" > /dev/tty
ftp -4 -o - $url
done | runfile
elif [ "$#" -ge 1 ]; then
for url in $*
do
echo "Fetching $url" > /dev/tty
ftp -4 -o - $url
done | runfile
else
runfile
fi