mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
64 lines
1.4 KiB
Bash
64 lines
1.4 KiB
Bash
|
|
# WARNING -- first line intentionally left blank for sh/csh/ksh
|
|
# compatibility. Do not remove it! FNF, UniSoft Systems.
|
|
#
|
|
# Usage is:
|
|
# install <from> <to>
|
|
#
|
|
# The file <to> is replaced with the file <from>, after first
|
|
# moving <to> to a backup file. The backup file name is created
|
|
# by prepending the filename (after removing any leading pathname
|
|
# components) with "OLD".
|
|
#
|
|
# This script is currently not real robust in the face of signals
|
|
# or permission problems. It also does not do (by intention) all
|
|
# the things that the System V or BSD install scripts try to do
|
|
#
|
|
|
|
if [ $# -ne 2 ]
|
|
then
|
|
echo "usage: $0 <from> <to>"
|
|
exit 1
|
|
fi
|
|
|
|
# Now extract the dirname and basename components. Unfortunately, BSD does
|
|
# not have dirname, so we do it the hard way.
|
|
|
|
fd=`expr $1'/' : '\(/\)[^/]*/$' \| $1'/' : '\(.*[^/]\)//*[^/][^/]*//*$' \| .`
|
|
ff=`basename $1`
|
|
td=`expr $2'/' : '\(/\)[^/]*/$' \| $2'/' : '\(.*[^/]\)//*[^/][^/]*//*$' \| .`
|
|
tf=`basename $2`
|
|
|
|
# Now test to make sure that they are not the same files.
|
|
|
|
if [ $fd/$ff = $td/$tf ]
|
|
then
|
|
echo "install: input and output are same files"
|
|
exit 2
|
|
fi
|
|
|
|
# Save a copy of the "to" file as a backup.
|
|
|
|
if test -f $td/$tf
|
|
then
|
|
if test -f $td/OLD$tf
|
|
then
|
|
rm -f $td/OLD$tf
|
|
fi
|
|
mv $td/$tf $td/OLD$tf
|
|
if [ $? != 0 ]
|
|
then
|
|
exit 3
|
|
fi
|
|
fi
|
|
|
|
# Now do the copy and return appropriate status
|
|
|
|
cp $fd/$ff $td/$tf
|
|
if [ $? != 0 ]
|
|
then
|
|
exit 4
|
|
else
|
|
exit 0
|
|
fi
|
|
|