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