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