155714Skris#!/bin/sh 255714Skris# 355714Skris# install - install a program, script, or datafile 455714Skris# This comes from X11R5; it is not part of GNU. 555714Skris# 655714Skris# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $ 755714Skris# 855714Skris# This script is compatible with the BSD install script, but was written 955714Skris# from scratch. 1055714Skris# 1155714Skris 1255714Skris 1355714Skris# set DOITPROG to echo to test this script 1455714Skris 1555714Skrisdoit="${DOITPROG:-}" 1655714Skris 1755714Skris 1855714Skris# put in absolute paths if you don't have them in your path; or use env. vars. 1955714Skris 2055714Skrismvprog="${MVPROG:-mv}" 2155714Skriscpprog="${CPPROG:-cp}" 2255714Skrischmodprog="${CHMODPROG:-chmod}" 2355714Skrischownprog="${CHOWNPROG:-chown}" 2455714Skrischgrpprog="${CHGRPPROG:-chgrp}" 2555714Skrisstripprog="${STRIPPROG:-strip}" 2655714Skrisrmprog="${RMPROG:-rm}" 2755714Skris 2855714Skrisinstcmd="$mvprog" 2955714Skrischmodcmd="" 3055714Skrischowncmd="" 3155714Skrischgrpcmd="" 3255714Skrisstripcmd="" 3355714Skrisrmcmd="$rmprog -f" 3455714Skrissrc="" 3555714Skrisdst="" 3655714Skris 3755714Skriswhile [ x"$1" != x ]; do 3855714Skris case $1 in 3955714Skris -c) instcmd="$cpprog" 4055714Skris shift 4155714Skris continue;; 4255714Skris 4355714Skris -m) chmodcmd="$chmodprog $2" 4455714Skris shift 4555714Skris shift 4655714Skris continue;; 4755714Skris 4855714Skris -o) chowncmd="$chownprog $2" 4955714Skris shift 5055714Skris shift 5155714Skris continue;; 5255714Skris 5355714Skris -g) chgrpcmd="$chgrpprog $2" 5455714Skris shift 5555714Skris shift 5655714Skris continue;; 5755714Skris 5855714Skris -s) stripcmd="$stripprog" 5955714Skris shift 6055714Skris continue;; 6155714Skris 6255714Skris *) if [ x"$src" = x ] 6355714Skris then 6455714Skris src=$1 6555714Skris else 6655714Skris dst=$1 6755714Skris fi 6855714Skris shift 6955714Skris continue;; 7055714Skris esac 7155714Skrisdone 7255714Skris 7355714Skrisif [ x"$src" = x ] 7455714Skristhen 7555714Skris echo "install: no input file specified" 7655714Skris exit 1 7755714Skrisfi 7855714Skris 7955714Skrisif [ x"$dst" = x ] 8055714Skristhen 8155714Skris echo "install: no destination specified" 8255714Skris exit 1 8355714Skrisfi 8455714Skris 8555714Skris 8655714Skris# if destination is a directory, append the input filename; if your system 8755714Skris# does not like double slashes in filenames, you may need to add some logic 8855714Skris 8955714Skrisif [ -d $dst ] 9055714Skristhen 9155714Skris dst="$dst"/`basename $src` 9255714Skrisfi 9355714Skris 9455714Skris 9555714Skris# get rid of the old one and mode the new one in 9655714Skris 9755714Skris$doit $rmcmd $dst 9855714Skris$doit $instcmd $src $dst 9955714Skris 10055714Skris 10155714Skris# and set any options; do chmod last to preserve setuid bits 10255714Skris 10355714Skrisif [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; fi 10455714Skrisif [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; fi 10555714Skrisif [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; fi 10655714Skrisif [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; fi 10755714Skris 10855714Skrisexit 0 109