:
##########################################################################
# Title      :	update.sh - update files based on the modification time
# Author     :	Heiner Steven <heiner.steven@odn.de>
# Date       :	1996-05-24
# Requires   :	
# Category   :	File Utilities
# SCCS-Id.   :	@(#) update.sh	1.3 03/12/19
##########################################################################
# Description
#
##########################################################################

set -u
PN=`basename "$0"`			# program name
VER='1.3'

CpioFlags=dm
CpFlags=

usage () {
    echo >&2 "$PN - update files based on the modification time $VER (hs '96)
usage: $PN [-v] file [file ...] directory
       $PN [-v] file file"
    exit 1
}

msg () {
    for i
    do echo "$PN: $i" >&2
    done
}

fatal () { msg "$@"; exit 1; }

Recurse=no				# Not implemented yet
Verbose=no
MultipleFiles=no

while [ $# -gt 0 ]
do
    case "$1" in
	-v)	CpioFlags="${CpioFlags}v" Verbose=yes;;
#	-[rR])	Recurse=yes;;		# Not implemented yet
	--)	shift; break;;
	-h)	usage;;
	-*)	usage;;
	*)	break;;			# First file name
    esac
    shift
done

[ $# -lt 2 ] && usage
[ $# -gt 3 ] && MultipleFiles=yes

Src=
while [ $# -gt 1 ]
do
    if [ -d "$1" -a $Recurse = no ]
    then msg "$1: is a directory"
    else Src="${Src:+$Src }\"$1\""	# Preserve whitespace
    fi
    shift
done
Dst="$1"

if [ -d "$Dst" ]
then				# Copy files to a directory
    # msg "copy files to directory $Dst"
    eval ls -d $Src |
	( [ $Verbose = no ] && exec >/dev/null 2>&1
	  cpio -p$CpioFlags "$Dst"
	)
elif [ -f "$Dst" ]
then
    fatal "$Dst: will not overwrite existing file"
elif [ $MultipleFiles = no ]
then				# Copy one file to a new file
    # msg "copy 1 file to file $Dst"
    eval cp ${CpFlags} $Src \"$Dst\"
else				# Copy many files to one file
    fatal "$Dst: target directory does not exist"
fi
