Mercurial > octave-nkf
comparison install-sh @ 2330:12ff450cbb1f
[project @ 1996-07-19 01:39:22 by jwe]
Initial revision
author | jwe |
---|---|
date | Fri, 19 Jul 1996 01:49:31 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
2329:30c606bec7a8 | 2330:12ff450cbb1f |
---|---|
1 #!/bin/sh | |
2 | |
3 # | |
4 # install - install a program, script, or datafile | |
5 # This comes from X11R5; it is not part of GNU. | |
6 # | |
7 # $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $ | |
8 # | |
9 # This script is compatible with the BSD install script, but was written | |
10 # from scratch. | |
11 # | |
12 | |
13 | |
14 # set DOITPROG to echo to test this script | |
15 | |
16 # Don't use :- since 4.3BSD and earlier shells don't like it. | |
17 doit="${DOITPROG-}" | |
18 | |
19 | |
20 # put in absolute paths if you don't have them in your path; or use env. vars. | |
21 | |
22 mvprog="${MVPROG-mv}" | |
23 cpprog="${CPPROG-cp}" | |
24 chmodprog="${CHMODPROG-chmod}" | |
25 chownprog="${CHOWNPROG-chown}" | |
26 chgrpprog="${CHGRPPROG-chgrp}" | |
27 stripprog="${STRIPPROG-strip}" | |
28 rmprog="${RMPROG-rm}" | |
29 | |
30 instcmd="$mvprog" | |
31 chmodcmd="" | |
32 chowncmd="" | |
33 chgrpcmd="" | |
34 stripcmd="" | |
35 rmcmd="$rmprog -f" | |
36 mvcmd="$mvprog" | |
37 src="" | |
38 dst="" | |
39 | |
40 while [ x"$1" != x ]; do | |
41 case $1 in | |
42 -c) instcmd="$cpprog" | |
43 shift | |
44 continue;; | |
45 | |
46 -m) chmodcmd="$chmodprog $2" | |
47 shift | |
48 shift | |
49 continue;; | |
50 | |
51 -o) chowncmd="$chownprog $2" | |
52 shift | |
53 shift | |
54 continue;; | |
55 | |
56 -g) chgrpcmd="$chgrpprog $2" | |
57 shift | |
58 shift | |
59 continue;; | |
60 | |
61 -s) stripcmd="$stripprog" | |
62 shift | |
63 continue;; | |
64 | |
65 *) if [ x"$src" = x ] | |
66 then | |
67 src=$1 | |
68 else | |
69 dst=$1 | |
70 fi | |
71 shift | |
72 continue;; | |
73 esac | |
74 done | |
75 | |
76 if [ x"$src" = x ] | |
77 then | |
78 echo "install: no input file specified" | |
79 exit 1 | |
80 fi | |
81 | |
82 if [ x"$dst" = x ] | |
83 then | |
84 echo "install: no destination specified" | |
85 exit 1 | |
86 fi | |
87 | |
88 | |
89 # If destination is a directory, append the input filename; if your system | |
90 # does not like double slashes in filenames, you may need to add some logic | |
91 | |
92 if [ -d $dst ] | |
93 then | |
94 dst="$dst"/`basename $src` | |
95 fi | |
96 | |
97 # Make a temp file name in the proper directory. | |
98 | |
99 dstdir=`dirname $dst` | |
100 dsttmp=$dstdir/#inst.$$# | |
101 | |
102 # Move or copy the file name to the temp name | |
103 | |
104 $doit $instcmd $src $dsttmp | |
105 | |
106 # and set any options; do chmod last to preserve setuid bits | |
107 | |
108 if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi | |
109 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi | |
110 if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi | |
111 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi | |
112 | |
113 # Now rename the file to the real destination. | |
114 | |
115 $doit $rmcmd $dst | |
116 $doit $mvcmd $dsttmp $dst | |
117 | |
118 | |
119 exit 0 |