xref: /plan9/rc/bin/ape/install (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
13e12c5d1SDavid du Colombier#!/bin/rc
2*9a747e4fSDavid du Colombier# Usage: install [options] srcfile dstfile
33e12c5d1SDavid du Colombier# Usage: install srcfile dstfile owner group mode
4*9a747e4fSDavid du Colombier
5*9a747e4fSDavid du Colombierfn usage {
6*9a747e4fSDavid du Colombier	echo 'usage: install [-c|-m mode] srcfile dstfile' >[1=2]
7*9a747e4fSDavid du Colombier	exit 1
8*9a747e4fSDavid du Colombier}
9*9a747e4fSDavid du Colombier
10*9a747e4fSDavid du Colombiermode=775
11*9a747e4fSDavid du Colombierwhile(! ~ $#* 0){
12*9a747e4fSDavid du Colombier	switch($1){
13*9a747e4fSDavid du Colombier	case -c
14*9a747e4fSDavid du Colombier		;
15*9a747e4fSDavid du Colombier	case -m
16*9a747e4fSDavid du Colombier		mode=$2
17*9a747e4fSDavid du Colombier		shift
18*9a747e4fSDavid du Colombier	case -*
19*9a747e4fSDavid du Colombier		usage
20*9a747e4fSDavid du Colombier	case *
21*9a747e4fSDavid du Colombier		switch($#*) {
22*9a747e4fSDavid du Colombier		case 2
23*9a747e4fSDavid du Colombier			;
24*9a747e4fSDavid du Colombier		case 5
25*9a747e4fSDavid du Colombier			mode=$5	# backward compatibility
26*9a747e4fSDavid du Colombier		case *
27*9a747e4fSDavid du Colombier			usage
28*9a747e4fSDavid du Colombier		}
29*9a747e4fSDavid du Colombier		srcfile=$1
30*9a747e4fSDavid du Colombier		dstfile=$2
31*9a747e4fSDavid du Colombier		if (! test -f $dstfile || ! cmp -s $srcfile $dstfile) {
32*9a747e4fSDavid du Colombier			cp $srcfile $dstfile
33*9a747e4fSDavid du Colombier			chmod $mode $dstfile
34*9a747e4fSDavid du Colombier			chmod g+w $dstfile
353e12c5d1SDavid du Colombier		}
363e12c5d1SDavid du Colombier		exit 0
37*9a747e4fSDavid du Colombier	}
38*9a747e4fSDavid du Colombier	shift
39*9a747e4fSDavid du Colombier}
40*9a747e4fSDavid du Colombierusage
41