14d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#!/bin/sh
24d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#
34d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# install - install a program, script, or datafile
44d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# This comes from X11R5 (mit/util/scripts/install.sh).
54d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#
64d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# Copyright 1991 by the Massachusetts Institute of Technology
74d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#
84d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# Permission to use, copy, modify, distribute, and sell this software and its
94d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# documentation for any purpose is hereby granted without fee, provided that
104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# the above copyright notice appear in all copies and that both that
114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# copyright notice and this permission notice appear in supporting
124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# documentation, and that the name of M.I.T. not be used in advertising or
134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# publicity pertaining to distribution of the software without specific,
144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# written prior permission.  M.I.T. makes no representations about the
154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# suitability of this software for any purpose.  It is provided "as is"
164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# without express or implied warranty.
174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#
184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# Calling this script install-sh is preferred over install.sh, to prevent
194d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# `make' implicit rules from creating a file called install from it
204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# when there is no Makefile.
214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#
224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# This script is compatible with the BSD install script, but was written
234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# from scratch.  It can only install one file at a time, a restriction
244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# shared with many OS's install programs.
254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# set DOITPROG to echo to test this script
284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# Don't use :- since 4.3BSD and earlier shells don't like it.
304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimadoit="${DOITPROG-}"
314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# put in absolute paths if you don't have them in your path; or use env. vars.
344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimamvprog="${MVPROG-mv}"
364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimacpprog="${CPPROG-cp}"
374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimachmodprog="${CHMODPROG-chmod}"
384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimachownprog="${CHOWNPROG-chown}"
394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimachgrpprog="${CHGRPPROG-chgrp}"
404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimastripprog="${STRIPPROG-strip}"
414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimarmprog="${RMPROG-rm}"
424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimamkdirprog="${MKDIRPROG-mkdir}"
434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimatransformbasename=""
454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimatransform_arg=""
464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimainstcmd="$mvprog"
474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimachmodcmd="$chmodprog 0755"
484d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimachowncmd=""
494d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimachgrpcmd=""
504d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimastripcmd=""
514d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimarmcmd="$rmprog -f"
524d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimamvcmd="$mvprog"
534d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimasrc=""
544d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimadst=""
554d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimadir_arg=""
564d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
574d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimawhile [ x"$1" != x ]; do
584d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    case $1 in
594d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	-c) instcmd="$cpprog"
604d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    shift
614d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    continue;;
624d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
634d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	-d) dir_arg=true
644d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    shift
654d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    continue;;
664d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
674d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	-m) chmodcmd="$chmodprog $2"
684d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    shift
694d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    shift
704d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    continue;;
714d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
724d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	-o) chowncmd="$chownprog $2"
734d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    shift
744d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    shift
754d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    continue;;
764d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
774d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	-g) chgrpcmd="$chgrpprog $2"
784d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    shift
794d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    shift
804d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    continue;;
814d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
824d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	-s) stripcmd="$stripprog"
834d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    shift
844d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    continue;;
854d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
864d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
874d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    shift
884d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    continue;;
894d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
904d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
914d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    shift
924d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    continue;;
934d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
944d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	*)  if [ x"$src" = x ]
954d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    then
964d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		src=$1
974d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    else
984d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		# this colon is to work around a 386BSD /bin/sh bug
994d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		:
1004d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		dst=$1
1014d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    fi
1024d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    shift
1034d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    continue;;
1044d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    esac
1054d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimadone
1064d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1074d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimaif [ x"$src" = x ]
1084d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimathen
1094d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	echo "install:	no input file specified"
1104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	exit 1
1114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimaelse
1124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	true
1134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimafi
1144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimaif [ x"$dir_arg" != x ]; then
1164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	dst=$src
1174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	src=""
1184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	
1194d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ -d $dst ]; then
1204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		instcmd=:
1214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		chmodcmd=""
1224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	else
1234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		instcmd=mkdir
1244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	fi
1254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimaelse
1264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
1284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# might cause directories to be created, which would be especially bad 
1294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# if $src (and thus $dsttmp) contains '*'.
1304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ -f $src -o -d $src ]
1324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	then
1334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		true
1344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	else
1354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		echo "install:  $src does not exist"
1364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		exit 1
1374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	fi
1384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	
1394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ x"$dst" = x ]
1404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	then
1414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		echo "install:	no destination specified"
1424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		exit 1
1434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	else
1444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		true
1454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	fi
1464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# If destination is a directory, append the input filename; if your system
1484d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# does not like double slashes in filenames, you may need to add some logic
1494d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1504d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ -d $dst ]
1514d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	then
1524d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		dst="$dst"/`basename $src`
1534d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	else
1544d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		true
1554d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	fi
1564d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimafi
1574d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1584d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima## this sed command emulates the dirname command
1594d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimadstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
1604d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1614d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# Make sure that the destination directory exists.
1624d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#  this part is taken from Noah Friedman's mkinstalldirs script
1634d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1644d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# Skip lots of stat calls in the usual case.
1654d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimaif [ ! -d "$dstdir" ]; then
1664d07f569799aaae0d7fccf8e76386d450664987fJun NakajimadefaultIFS='	
1674d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima'
1684d07f569799aaae0d7fccf8e76386d450664987fJun NakajimaIFS="${IFS-${defaultIFS}}"
1694d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1704d07f569799aaae0d7fccf8e76386d450664987fJun NakajimaoIFS="${IFS}"
1714d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# Some sh's can't handle IFS=/ for some reason.
1724d07f569799aaae0d7fccf8e76386d450664987fJun NakajimaIFS='%'
1734d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimaset - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
1744d07f569799aaae0d7fccf8e76386d450664987fJun NakajimaIFS="${oIFS}"
1754d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1764d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimapathcomp=''
1774d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1784d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimawhile [ $# -ne 0 ] ; do
1794d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	pathcomp="${pathcomp}${1}"
1804d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	shift
1814d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1824d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ ! -d "${pathcomp}" ] ;
1834d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        then
1844d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		$mkdirprog "${pathcomp}"
1854d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	else
1864d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		true
1874d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	fi
1884d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1894d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	pathcomp="${pathcomp}/"
1904d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimadone
1914d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimafi
1924d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1934d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimaif [ x"$dir_arg" != x ]
1944d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimathen
1954d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	$doit $instcmd $dst &&
1964d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1974d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
1984d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
1994d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
2004d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
2014d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimaelse
2024d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2034d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# If we're going to rename the final executable, determine the name now.
2044d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2054d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ x"$transformarg" = x ] 
2064d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	then
2074d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		dstfile=`basename $dst`
2084d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	else
2094d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		dstfile=`basename $dst $transformbasename | 
2104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima			sed $transformarg`$transformbasename
2114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	fi
2124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# don't allow the sed command to completely eliminate the filename
2144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ x"$dstfile" = x ] 
2164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	then
2174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		dstfile=`basename $dst`
2184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	else
2194d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		true
2204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	fi
2214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# Make a temp file name in the proper directory.
2234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	dsttmp=$dstdir/#inst.$$#
2254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# Move or copy the file name to the temp name
2274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	$doit $instcmd $src $dsttmp &&
2294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	trap "rm -f ${dsttmp}" 0 &&
2314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# and set any options; do chmod last to preserve setuid bits
2334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# If any of these fail, we abort the whole thing.  If we want to
2354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# ignore errors from any of these, just make sure not to ignore
2364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# errors from the above "$doit $instcmd $src $dsttmp" command.
2374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
2394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
2404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
2414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
2424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima# Now rename the file to the real destination.
2444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	$doit $rmcmd -f $dstdir/$dstfile &&
2464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	$doit $mvcmd $dsttmp $dstdir/$dstfile 
2474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2484d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimafi &&
2494d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2504d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2514d07f569799aaae0d7fccf8e76386d450664987fJun Nakajimaexit 0
252