Files
epics-base/src/tools/installEpics
1996-10-31 20:01:00 +00:00

89 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
# InstallEpics
#
# InstallEpics is used within makefiles to copy new versions of
# files into a destination directory.
#
##########################################################
TOOL=`basename $0`
MODE=755
CREATE_DIR=0
USAGE="Usage:
$TOOL [ -m mode ] file ... directory
-m mode Set the mode for the installed file (0755 by default)
file Name of file
directory Destination directory
"
# get command line options
set -- `getopt m:g:o:csd $*`
for i
do
case $i in
-m) MODE=$2; shift 2;;
-g | -o) echo "$USAGE"; echo "$i not implemented"; shift 2;;
-c | -s) echo "$USAGE"; echo "$i not implemented"; shift;;
-d) CREATE_DIR=1;shift;;
--) shift; break;;
esac
done
# at least two args required
if [ $# -lt 2 ]
then
echo "$USAGE"
exit 1
fi
INSTALL_DIR=
FILELIST=
for i
do
FILELIST="${FILELIST} ${INSTALL_DIR}"; INSTALL_DIR=$i; shift;
done
if [ ! -d "${INSTALL_DIR}" ] ;then
if [ "${CREATE_DIR}" ] ;then
OLDIFS=${IFS}
IFS=/
DIRNAME=
for DIR in ${INSTALL_DIR}
do
DIRNAME=${DIRNAME}/${DIR}
if [ ! -d "${DIRNAME}" ] ;then
mkdir "${DIRNAME}"
fi
done
IFS=${OLDIFS}
else
echo "$USAGE\n Can't find directory '${INSTALL_DIR}'"
exit 1
fi
fi
for FILE in ${FILELIST}
do
if [ ! -f ${FILE} ] ;then
echo "$USAGE\n Can't find file '${FILE}'"
exit 1
fi
TEST=
FILEBASENAME=`basename ${FILE}`
if [ -f ${INSTALL_DIR}/${FILEBASENAME} ] ; then
#Is ${INSTALL_DIR}/${FILEBASENAME} link timestamp newer than ${FILE}
TEST=`find ${INSTALL_DIR} -name "${FILEBASENAME}" -newer ${FILE} -print`
fi
if [ "${TEST}x" = "x" ] ; then
#echo "Installing ${FILEBASENAME}"
/bin/rm -f ${INSTALL_DIR}/${FILEBASENAME}
/bin/cp -p ${FILE} ${INSTALL_DIR}/${FILEBASENAME}
/bin/chmod ${MODE} ${INSTALL_DIR}/${FILEBASENAME}
else
echo "${INSTALL_DIR}/${FILEBASENAME} is up to date"
fi
done
exit 0