1313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti#!/bin/sh 2313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# 3313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# install - install a program, script, or datafile 4313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# This comes from X11R5 (mit/util/scripts/install.sh). 5313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# 6313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# Copyright 1991 by the Massachusetts Institute of Technology 7313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# 8313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# Permission to use, copy, modify, distribute, and sell this software and its 9313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# documentation for any purpose is hereby granted without fee, provided that 10313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# the above copyright notice appear in all copies and that both that 11313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# copyright notice and this permission notice appear in supporting 12313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# documentation, and that the name of M.I.T. not be used in advertising or 13313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# publicity pertaining to distribution of the software without specific, 14313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# written prior permission. M.I.T. makes no representations about the 15313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# suitability of this software for any purpose. It is provided "as is" 16313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# without express or implied warranty. 17313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# 18313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# Calling this script install-sh is preferred over install.sh, to prevent 19313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# `make' implicit rules from creating a file called install from it 20313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# when there is no Makefile. 21313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# 22313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# This script is compatible with the BSD install script, but was written 23313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# from scratch. It can only install one file at a time, a restriction 24313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# shared with many OS's install programs. 25313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 26313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 27313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# set DOITPROG to echo to test this script 28313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 29313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# Don't use :- since 4.3BSD and earlier shells don't like it. 30313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittidoit="${DOITPROG-}" 31313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 32313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 33313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# put in absolute paths if you don't have them in your path; or use env. vars. 34313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 35313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittimvprog="${MVPROG-mv}" 36313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitticpprog="${CPPROG-cp}" 37313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittichmodprog="${CHMODPROG-chmod}" 38313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittichownprog="${CHOWNPROG-chown}" 39313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittichgrpprog="${CHGRPPROG-chgrp}" 40313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittistripprog="${STRIPPROG-strip}" 41313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittirmprog="${RMPROG-rm}" 42313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittimkdirprog="${MKDIRPROG-mkdir}" 43313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 44313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittitransformbasename="" 45313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittitransform_arg="" 46313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittiinstcmd="$mvprog" 47313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittichmodcmd="$chmodprog 0755" 48313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittichowncmd="" 49313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittichgrpcmd="" 50313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittistripcmd="" 51313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittirmcmd="$rmprog -f" 52313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittimvcmd="$mvprog" 53313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittisrc="" 54313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittidst="" 55313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittidir_arg="" 56313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 57313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittiwhile [ x"$1" != x ]; do 58313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti case $1 in 59313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti -c) instcmd="$cpprog" 60313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 61313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti continue;; 62313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 63313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti -d) dir_arg=true 64313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 65313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti continue;; 66313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 67313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti -m) chmodcmd="$chmodprog $2" 68313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 69313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 70313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti continue;; 71313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 72313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti -o) chowncmd="$chownprog $2" 73313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 74313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 75313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti continue;; 76313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 77313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti -g) chgrpcmd="$chgrpprog $2" 78313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 79313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 80313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti continue;; 81313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 82313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti -s) stripcmd="$stripprog" 83313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 84313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti continue;; 85313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 86313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti -t=*) transformarg=`echo $1 | sed 's/-t=//'` 87313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 88313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti continue;; 89313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 90313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti -b=*) transformbasename=`echo $1 | sed 's/-b=//'` 91313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 92313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti continue;; 93313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 94313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti *) if [ x"$src" = x ] 95313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti then 96313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti src=$1 97313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti else 98313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti # this colon is to work around a 386BSD /bin/sh bug 99313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti : 100313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti dst=$1 101313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti fi 102313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 103313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti continue;; 104313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti esac 105313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittidone 106313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 107313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittiif [ x"$src" = x ] 108313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittithen 109313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti echo "install: no input file specified" 110313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti exit 1 111313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittielse 112313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti true 113313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittifi 114313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 115313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittiif [ x"$dir_arg" != x ]; then 116313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti dst=$src 117313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti src="" 118313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 119313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ -d $dst ]; then 120313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti instcmd=: 121313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti chmodcmd="" 122313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti else 123313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti instcmd=mkdir 124313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti fi 125313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittielse 126313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 127313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# Waiting for this to be detected by the "$instcmd $src $dsttmp" command 128313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# might cause directories to be created, which would be especially bad 129313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# if $src (and thus $dsttmp) contains '*'. 130313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 131313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ -f $src -o -d $src ] 132313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti then 133313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti true 134313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti else 135313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti echo "install: $src does not exist" 136313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti exit 1 137313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti fi 138313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 139313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ x"$dst" = x ] 140313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti then 141313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti echo "install: no destination specified" 142313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti exit 1 143313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti else 144313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti true 145313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti fi 146313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 147313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# If destination is a directory, append the input filename; if your system 148313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# does not like double slashes in filenames, you may need to add some logic 149313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 150313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ -d $dst ] 151313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti then 152313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti dst="$dst"/`basename $src` 153313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti else 154313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti true 155313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti fi 156313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittifi 157313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 158313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti## this sed command emulates the dirname command 159313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittidstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` 160313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 161313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# Make sure that the destination directory exists. 162313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# this part is taken from Noah Friedman's mkinstalldirs script 163313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 164313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# Skip lots of stat calls in the usual case. 165313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittiif [ ! -d "$dstdir" ]; then 166313379eb6b9da55f7371adef39a92153a0707d4aLorenzo ColittidefaultIFS=' 167313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti' 168313379eb6b9da55f7371adef39a92153a0707d4aLorenzo ColittiIFS="${IFS-${defaultIFS}}" 169313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 170313379eb6b9da55f7371adef39a92153a0707d4aLorenzo ColittioIFS="${IFS}" 171313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# Some sh's can't handle IFS=/ for some reason. 172313379eb6b9da55f7371adef39a92153a0707d4aLorenzo ColittiIFS='%' 173313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittiset - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` 174313379eb6b9da55f7371adef39a92153a0707d4aLorenzo ColittiIFS="${oIFS}" 175313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 176313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittipathcomp='' 177313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 178313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittiwhile [ $# -ne 0 ] ; do 179313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti pathcomp="${pathcomp}${1}" 180313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti shift 181313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 182313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ ! -d "${pathcomp}" ] ; 183313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti then 184313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti $mkdirprog "${pathcomp}" 185313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti else 186313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti true 187313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti fi 188313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 189313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti pathcomp="${pathcomp}/" 190313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittidone 191313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittifi 192313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 193313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittiif [ x"$dir_arg" != x ] 194313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittithen 195313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti $doit $instcmd $dst && 196313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 197313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && 198313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && 199313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && 200313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi 201313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittielse 202313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 203313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# If we're going to rename the final executable, determine the name now. 204313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 205313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ x"$transformarg" = x ] 206313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti then 207313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti dstfile=`basename $dst` 208313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti else 209313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti dstfile=`basename $dst $transformbasename | 210313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti sed $transformarg`$transformbasename 211313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti fi 212313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 213313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# don't allow the sed command to completely eliminate the filename 214313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 215313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ x"$dstfile" = x ] 216313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti then 217313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti dstfile=`basename $dst` 218313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti else 219313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti true 220313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti fi 221313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 222313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# Make a temp file name in the proper directory. 223313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 224313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti dsttmp=$dstdir/#inst.$$# 225313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 226313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# Move or copy the file name to the temp name 227313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 228313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti $doit $instcmd $src $dsttmp && 229313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 230313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti trap "rm -f ${dsttmp}" 0 && 231313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 232313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# and set any options; do chmod last to preserve setuid bits 233313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 234313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# If any of these fail, we abort the whole thing. If we want to 235313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# ignore errors from any of these, just make sure not to ignore 236313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# errors from the above "$doit $instcmd $src $dsttmp" command. 237313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 238313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && 239313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && 240313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && 241313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && 242313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 243313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti# Now rename the file to the real destination. 244313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 245313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti $doit $rmcmd -f $dstdir/$dstfile && 246313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti $doit $mvcmd $dsttmp $dstdir/$dstfile 247313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 248313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittifi && 249313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 250313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colitti 251313379eb6b9da55f7371adef39a92153a0707d4aLorenzo Colittiexit 0 252