1*2de962bdSlukem#!/bin/sh 2*2de962bdSlukem 3*2de962bdSlukem# 4*2de962bdSlukem# install - install a program, script, or datafile 5*2de962bdSlukem# This comes from X11R5; it is not part of GNU. 6*2de962bdSlukem# 7*2de962bdSlukem# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $ 8*2de962bdSlukem# 9*2de962bdSlukem# This script is compatible with the BSD install script, but was written 10*2de962bdSlukem# from scratch. 11*2de962bdSlukem# 12*2de962bdSlukem 13*2de962bdSlukem 14*2de962bdSlukem# set DOITPROG to echo to test this script 15*2de962bdSlukem 16*2de962bdSlukem# Don't use :- since 4.3BSD and earlier shells don't like it. 17*2de962bdSlukemdoit="${DOITPROG-}" 18*2de962bdSlukem 19*2de962bdSlukem 20*2de962bdSlukem# put in absolute paths if you don't have them in your path; or use env. vars. 21*2de962bdSlukem 22*2de962bdSlukemmvprog="${MVPROG-mv}" 23*2de962bdSlukemcpprog="${CPPROG-cp}" 24*2de962bdSlukemchmodprog="${CHMODPROG-chmod}" 25*2de962bdSlukemchownprog="${CHOWNPROG-chown}" 26*2de962bdSlukemchgrpprog="${CHGRPPROG-chgrp}" 27*2de962bdSlukemstripprog="${STRIPPROG-strip}" 28*2de962bdSlukemrmprog="${RMPROG-rm}" 29*2de962bdSlukem 30*2de962bdSlukeminstcmd="$mvprog" 31*2de962bdSlukemchmodcmd="" 32*2de962bdSlukemchowncmd="" 33*2de962bdSlukemchgrpcmd="" 34*2de962bdSlukemstripcmd="" 35*2de962bdSlukemrmcmd="$rmprog -f" 36*2de962bdSlukemmvcmd="$mvprog" 37*2de962bdSlukemsrc="" 38*2de962bdSlukemdst="" 39*2de962bdSlukem 40*2de962bdSlukemwhile [ x"$1" != x ]; do 41*2de962bdSlukem case $1 in 42*2de962bdSlukem -c) instcmd="$cpprog" 43*2de962bdSlukem shift 44*2de962bdSlukem continue;; 45*2de962bdSlukem 46*2de962bdSlukem -m) chmodcmd="$chmodprog $2" 47*2de962bdSlukem shift 48*2de962bdSlukem shift 49*2de962bdSlukem continue;; 50*2de962bdSlukem 51*2de962bdSlukem -o) chowncmd="$chownprog $2" 52*2de962bdSlukem shift 53*2de962bdSlukem shift 54*2de962bdSlukem continue;; 55*2de962bdSlukem 56*2de962bdSlukem -g) chgrpcmd="$chgrpprog $2" 57*2de962bdSlukem shift 58*2de962bdSlukem shift 59*2de962bdSlukem continue;; 60*2de962bdSlukem 61*2de962bdSlukem -s) stripcmd="$stripprog" 62*2de962bdSlukem shift 63*2de962bdSlukem continue;; 64*2de962bdSlukem 65*2de962bdSlukem *) if [ x"$src" = x ] 66*2de962bdSlukem then 67*2de962bdSlukem src=$1 68*2de962bdSlukem else 69*2de962bdSlukem dst=$1 70*2de962bdSlukem fi 71*2de962bdSlukem shift 72*2de962bdSlukem continue;; 73*2de962bdSlukem esac 74*2de962bdSlukemdone 75*2de962bdSlukem 76*2de962bdSlukemif [ x"$src" = x ] 77*2de962bdSlukemthen 78*2de962bdSlukem echo "install: no input file specified" 79*2de962bdSlukem exit 1 80*2de962bdSlukemfi 81*2de962bdSlukem 82*2de962bdSlukemif [ x"$dst" = x ] 83*2de962bdSlukemthen 84*2de962bdSlukem echo "install: no destination specified" 85*2de962bdSlukem exit 1 86*2de962bdSlukemfi 87*2de962bdSlukem 88*2de962bdSlukem 89*2de962bdSlukem# If destination is a directory, append the input filename; if your system 90*2de962bdSlukem# does not like double slashes in filenames, you may need to add some logic 91*2de962bdSlukem 92*2de962bdSlukemif [ -d $dst ] 93*2de962bdSlukemthen 94*2de962bdSlukem dst="$dst"/`basename $src` 95*2de962bdSlukemfi 96*2de962bdSlukem 97*2de962bdSlukem# Make a temp file name in the proper directory. 98*2de962bdSlukem 99*2de962bdSlukemdstdir=`dirname $dst` 100*2de962bdSlukemdsttmp=$dstdir/#inst.$$# 101*2de962bdSlukem 102*2de962bdSlukem# Move or copy the file name to the temp name 103*2de962bdSlukem 104*2de962bdSlukem$doit $instcmd $src $dsttmp 105*2de962bdSlukem 106*2de962bdSlukem# and set any options; do chmod last to preserve setuid bits 107*2de962bdSlukem 108*2de962bdSlukemif [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi 109*2de962bdSlukemif [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi 110*2de962bdSlukemif [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi 111*2de962bdSlukemif [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi 112*2de962bdSlukem 113*2de962bdSlukem# Now rename the file to the real destination. 114*2de962bdSlukem 115*2de962bdSlukem$doit $rmcmd $dst 116*2de962bdSlukem$doit $mvcmd $dsttmp $dst 117*2de962bdSlukem 118*2de962bdSlukem 119*2de962bdSlukemexit 0 120