URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [rtems/] [tools/] [update/] [update.in] - Rev 30
Go to most recent revision | Compare with Previous | Blame | View Log
#!@KSH@ -p
#
# $Id: update.in,v 1.2 2001-09-27 12:02:54 chris Exp $
#
# Either bash or ksh will be ok for this; requires 'test -ot'
# (-p above just says to not parse $ENV file; makes it faster for
# those of us who set $ENV)
#
# Update RTEMS applications for the API changes from 3.1.0 to 3.2.0
#
# NOTE
#
# This is potentially a very dangerous program.
# progname=`basename $0`
progname=${0##*/} # fast basename hack for ksh, bash
USAGE=\
"
usage: $progname [ -vs ] [ -b base_directory ] [-p file] [-f] [files...]
-v -- verbose
-p -- file with replacement instructions
-s -- skip prompt for backup verification
-f -- do files at end of line
base_directory is the root directory of the source code to update. It
defaults to the current directory.
This program updates C, H, and .inl files.
"
fatal() {
if [ "$1" ]
then
echo >&2
echo $* >&2
echo >&2
fi
echo "$USAGE" 1>&2
exit 1
}
#
# KLUDGE to figure out at runtime how to echo a line without a
# newline.
#
count=`echo "\\c" | wc -c`
if [ ${count} -ne 0 ] ; then
EARG="-n"
EOL=""
else
EARG=""
EOL="\\c"
fi
#
# Function to make sure they do a backup
#
WARNING=\
"
*******************************************************************************
*******************************************************************************
*******************************************************************************
**** ****
**** WARNING!!! WARNING!!! WARNING!!! ****
**** ****
**** ALL SOURCE CODE SHOULD BE BACKED UP BEFORE RUNNING THIS PROGRAM!! ****
**** ****
**** WARNING!!! WARNING!!! WARNING!!! ****
**** ****
*******************************************************************************
*******************************************************************************
*******************************************************************************
"
verify_backup()
{
echo "$WARNING"
continue="yes"
while [ $continue = "yes" ]
do
echo ${EARG} "Do you wish to update the source tree at this time [y|n]? " ${EOL}
read answer
case $answer in
[yY]*)
continue="no"
;;
[nN]*)
echo
echo "Exitting at user request"
echo
exit 0
;;
esac
done
}
#
# Default tools to use...
#
# NOTE: The GNU versions of both of these are faster.
#
find_prog=find
xargs_prog=xargs
#
# process the options
#
verbose=""
suffix=""
mode=""
base_directory=.
do_files="no"
do_prompt="yes"
replacement_file="${RTEMS_ROOT}/update-tools/310_to_320_list"
while getopts sfp:b:v OPT
do
case "$OPT" in
v)
verbose="yes";;
s)
do_prompt="no";;
b)
base_directory=${OPTARG};;
p)
replacement_file=${OPTARG};;
f)
do_files="yes";;
*)
fatal
esac
done
let $((shiftcount = $OPTIND - 1))
shift $shiftcount
args=$*
#
# Make sure they have done a backup
#
if [ ${do_prompt} = "yes" ]
then
verify_backup
fi
#
# Validate the base directory
#
if [ ! -d $base_directory ]
then
fatal "${base_directory} does not exist"
fi
#
# Validate the replacement file
#
if [ ! -r $replacement_file ]
then
fatal "${replacement_file} does not exist or is not readable"
fi
#
# Verify enough of the RTEMS environment variables are set
#
if [ ! -d "${RTEMS_ROOT}" ]
then
fatal "RTEMS_ROOT environment variable is not initialized"
fi
#
# Update the files
#
generate_list()
{
if [ ${do_files} = "yes" ]
then
for i in $args
do
echo $i
done
else
${find_prog} ${base_directory} \( -name "*.[ch]" -o -name "*.inl" \) -print
fi
}
generate_list | ${xargs_prog} |
while read line
do
${RTEMS_ROOT}/update-tools/word-replace -p ${replacement_file} ${line}
if [ $? -ne 0 ]
then
exit 1
fi
for file in ${line}
do
mv ${file}.fixed ${file}
done
done
exit 0
# Local Variables: ***
# mode:ksh ***
# End: ***
Go to most recent revision | Compare with Previous | Blame | View Log