15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#! /bin/sh
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# install - install a program, script, or datafile
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This comes from X11R5.
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Calling this script install-sh is preferred over install.sh, to prevent
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# `make' implicit rules from creating a file called install from it
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# when there is no Makefile.
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This script is compatible with the BSD install script, but was written
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# from scratch.
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# set DOITPROG to echo to test this script
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Don't use :- since 4.3BSD and earlier shells don't like it.
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)doit="${DOITPROG-}"
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# put in absolute paths if you don't have them in your path; or use env. vars.
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)mvprog="${MVPROG-mv}"
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cpprog="${CPPROG-cp}"
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)chmodprog="${CHMODPROG-chmod}"
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)chownprog="${CHOWNPROG-chown}"
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)chgrpprog="${CHGRPPROG-chgrp}"
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)stripprog="${STRIPPROG-strip}"
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)rmprog="${RMPROG-rm}"
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)mkdirprog="${MKDIRPROG-mkdir}"
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)tranformbasename=""
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)transform_arg=""
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)instcmd="$mvprog"
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)chmodcmd="$chmodprog 0755"
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)chowncmd=""
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)chgrpcmd=""
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)stripcmd=""
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)rmcmd="$rmprog -f"
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)mvcmd="$mvprog"
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)src=""
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)dst=""
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)dir_arg=""
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)while [ x"$1" != x ]; do
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $1 in
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-c) instcmd="$cpprog"
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue;;
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-d) dir_arg=true
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue;;
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-m) chmodcmd="$chmodprog $2"
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue;;
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-o) chowncmd="$chownprog $2"
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue;;
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-g) chgrpcmd="$chgrpprog $2"
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue;;
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-s) stripcmd="$stripprog"
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue;;
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue;;
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue;;
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)  if [ x"$src" = x ]
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    then
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		src=$1
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# this colon is to work around a 386BSD /bin/sh bug
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		:
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		dst=$1
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue;;
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)done
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ x"$src" = x ]
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)then
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	echo "install:	no input file specified"
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit 1
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	true
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ x"$dir_arg" != x ]; then
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dst=$src
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	src=""
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ -d $dst ]; then
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		instcmd=:
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		instcmd=mkdir
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# might cause directories to be created, which would be especially bad 
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if $src (and thus $dsttmp) contains '*'.
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ -f $src -o -d $src ]
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	then
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		true
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		echo "install:  $src does not exist"
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		exit 1
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ x"$dst" = x ]
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	then
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		echo "install:	no destination specified"
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		exit 1
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		true
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# If destination is a directory, append the input filename; if your system
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# does not like double slashes in filenames, you may need to add some logic
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ -d $dst ]
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	then
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		dst="$dst"/`basename $src`
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		true
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)## this sed command emulates the dirname command
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Make sure that the destination directory exists.
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  this part is taken from Noah Friedman's mkinstalldirs script
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Skip lots of stat calls in the usual case.
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ ! -d "$dstdir" ]; then
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)defaultIFS='	
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)'
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IFS="${IFS-${defaultIFS}}"
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)oIFS="${IFS}"
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Some sh's can't handle IFS=/ for some reason.
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IFS='%'
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IFS="${oIFS}"
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)pathcomp=''
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)while [ $# -ne 0 ] ; do
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	pathcomp="${pathcomp}${1}"
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	shift
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ ! -d "${pathcomp}" ] ;
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        then
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$mkdirprog "${pathcomp}"
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		true
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	pathcomp="${pathcomp}/"
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)done
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ x"$dir_arg" != x ]
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)then
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$doit $instcmd $dst &&
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# If we're going to rename the final executable, determine the name now.
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ x"$transformarg" = x ] 
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	then
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		dstfile=`basename $dst`
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		dstfile=`basename $dst $transformbasename | 
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			sed $transformarg`$transformbasename
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# don't allow the sed command to completely eliminate the filename
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ x"$dstfile" = x ] 
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	then
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		dstfile=`basename $dst`
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		true
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Make a temp file name in the proper directory.
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dsttmp=$dstdir/#inst.$$#
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Move or copy the file name to the temp name
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$doit $instcmd $src $dsttmp &&
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	trap "rm -f ${dsttmp}" 0 &&
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# and set any options; do chmod last to preserve setuid bits
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# If any of these fail, we abort the whole thing.  If we want to
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ignore errors from any of these, just make sure not to ignore
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# errors from the above "$doit $instcmd $src $dsttmp" command.
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Now rename the file to the real destination.
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$doit $rmcmd -f $dstdir/$dstfile &&
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$doit $mvcmd $dsttmp $dstdir/$dstfile 
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi &&
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)exit 0
239