1#!/bin/sh 2# 3# install - install a program, script, or datafile 4# This comes from X11R5; it is not part of GNU. 5# 6# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $ 7# 8# This script is compatible with the BSD install script, but was written 9# from scratch. 10# 11 12 13# set DOITPROG to echo to test this script 14 15doit="${DOITPROG:-}" 16 17 18# put in absolute paths if you don't have them in your path; or use env. vars. 19 20mvprog="${MVPROG:-mv}" 21cpprog="${CPPROG:-cp}" 22chmodprog="${CHMODPROG:-chmod}" 23chownprog="${CHOWNPROG:-chown}" 24chgrpprog="${CHGRPPROG:-chgrp}" 25stripprog="${STRIPPROG:-strip}" 26rmprog="${RMPROG:-rm}" 27 28instcmd="$mvprog" 29chmodcmd="" 30chowncmd="" 31chgrpcmd="" 32stripcmd="" 33rmcmd="$rmprog -f" 34src="" 35dst="" 36 37while [ x"$1" != x ]; do 38 case $1 in 39 -c) instcmd="$cpprog" 40 shift 41 continue;; 42 43 -m) chmodcmd="$chmodprog $2" 44 shift 45 shift 46 continue;; 47 48 -o) chowncmd="$chownprog $2" 49 shift 50 shift 51 continue;; 52 53 -g) chgrpcmd="$chgrpprog $2" 54 shift 55 shift 56 continue;; 57 58 -s) stripcmd="$stripprog" 59 shift 60 continue;; 61 62 *) if [ x"$src" = x ] 63 then 64 src=$1 65 else 66 dst=$1 67 fi 68 shift 69 continue;; 70 esac 71done 72 73if [ x"$src" = x ] 74then 75 echo "install: no input file specified" 76 exit 1 77fi 78 79if [ x"$dst" = x ] 80then 81 echo "install: no destination specified" 82 exit 1 83fi 84 85 86# if destination is a directory, append the input filename; if your system 87# does not like double slashes in filenames, you may need to add some logic 88 89if [ -d $dst ] 90then 91 dst="$dst"/`basename $src` 92fi 93 94 95# get rid of the old one and mode the new one in 96 97$doit $rmcmd $dst 98$doit $instcmd $src $dst 99 100 101# and set any options; do chmod last to preserve setuid bits 102 103if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; fi 104if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; fi 105if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; fi 106if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; fi 107 108exit 0 109