#!/bin/sh # Copyright (C) 2001-2023 Artifex Software, Inc. # All Rights Reserved. # # This software is provided AS-IS with no warranty, either express or # implied. # # This software is distributed under license and may not be copied, # modified or distributed except as expressly authorized under the terms # of the license contained in the file LICENSE in this distribution. # # Refer to licensing information at http://www.artifex.com or contact # Artifex Software, Inc., 39 Mesa Street, Suite 108A, San Francisco, # CA 94129, USA, for further information. # # # Implement a uniform 'install' syntax independent of which of the two # "standard" install programs is installed. Based on ideas in, but not # copied from, the GNU fileutils install-sh script. Usage: # instcopy -c [-m ] (|) doit="" # Uncomment the following line for testing #doit="echo " mode="" while true; do case "$1" in -c) ;; -m) mode=$2; shift ;; *) break ;; esac shift; done src=$1 dst=$2 if [ $# = 2 -a -f $src ]; then true; else echo "Usage: instcopy -c [-m ] (|)" exit 1 fi if [ -d $dst ]; then dstdir=`echo $dst | sed -e 's,/$,,'` dst="$dstdir"/`basename $src` else dstdir=`echo $dst | sed -e 's,/[^/]*$,,'` fi dsttmp=$dstdir/#inst.$$# $doit trap "rm -f $dsttmp" 0 && $doit cp $src $dsttmp && if [ x"$mode" != x ]; then $doit chmod $mode $dsttmp; else true; fi && $doit rm -f $dst && $doit mv $dsttmp $dst && exit 0