#!/bin/sh
set -e
# FIXME: should have an "undo" option
# FIXME: should use special markers instead of ADDED/DELETED
error()
{
echo >&2 "ERROR: `basename $0`: $*"
exit 1
}
PRJONLY=0
if [ "x$1" = "x-p" ]
then
PRJONLY=1
shift
fi
usage_error()
{
echo >&2 "Usage: `basename $0` [-p] oldname newname"
exit 1
}
[ $# = 2 -a -n "$1" -a -n "$2" ] || usage_error
PRJ=`prcsguess`
# FIXME: should instead adjust $1 and $2 according to position wrt $PRJ
cd `dirname $PRJ`
# move the file unless -p was given
if [ $PRJONLY = 0 ]
then
[ -r "$1" ] || error "\`$1' does not exist"
[ ! -r "$2" ] || error "\`$2' already exists"
mv -v "$1" "$2"
fi
# FIXME: should move the entry and add a comment
# FIXME: should check that newname is not already in used
# FIXME: should barf when src does not exist
# rename in .prj file
NEW=`mktemp $PRJ.XXXXXX`
cat $PRJ | perl -e 'while (<>) { print $_; last if m/^\(Files$/ };
while (<>) { s|\('$1' |\('$2' |; print $_ };
while (<>) { print $_ } ' > $NEW
mv $PRJ $PRJ.bak
mv $NEW $PRJ
syntax highlighted by Code2HTML, v. 0.9.1