File: bsdinstall

package info (click to toggle)
ircii 4.4-3
  • links: PTS
  • area: main
  • in suites: hamm, slink
  • size: 4,256 kB
  • ctags: 2,797
  • sloc: ansic: 36,743; sh: 907; makefile: 483; lex: 16
file content (97 lines) | stat: -rwxr-xr-x 1,301 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#! /bin/sh
#
#	@(#)install.sh	4.5	(Berkeley)	10/12/83
#
# @(#)$Id: bsdinstall,v 2.2 1997/09/01 12:37:24 mrg Exp $
#
cmd=/bin/mv
strip=""
chmod="/bin/chmod 755"
chown=""
chgrp=""
while true ; do
	case $1 in
		-s )	strip="/bin/strip"
			shift
			;;
		-c )	cmd="/bin/cp"
			shift
			;;
		-m )	chmod="/bin/chmod $2"
			shift
			shift
			;;
		-o )	chown="/etc/chown -f $2"
			shift
			shift
			;;
		-g )	chgrp="/bin/chgrp -f $2"
			shift
			shift
			;;
		-d )	cmd="/bin/mkdir"
			shift
			;;
		* )	break
			;;
	esac
done

if test $1 = CVS -a -d $1 ; then
	echo "install: skipping CVS directory"
	exit 0
fi
if test ! ${2-""}; then
	echo "install: no destination specified"
	exit 1
fi
if test ${3-""}; then
	echo "install: too many files specified -> $*"
	exit 1
fi
if test $1 = $2 -o $2 = .; then
	echo "install: can't move $1 onto itself"
	exit 1
fi

case $cmd in
/bin/mkdir )
	file=$2/$1
	;;
* )
	if test '!' -f $1; then
		echo "install: can't open $1"
		exit 1
	fi
	if test -d $2; then
		file=$2/$1
	else
		file=$2
	fi
	/bin/rm -f $file
	;;
esac

case $cmd in
/bin/mkdir )
	if test ! -d "$file"; then
		$cmd $file
	fi
	;;
* )
	$cmd $1 $file
	if test -n "$strip"; then
		$strip $file
	fi
	;;
esac

if test -n "$chown"; then
	$chown $file
fi
if test -n "$chgrp"; then
	$chgrp $file
fi
$chmod $file

exit 0