~ubuntu-branches/ubuntu/trusty/nagios-plugins-contrib/trusty-proposed

« back to all changes in this revision

Viewing changes to check_mysql_health/check_mysql_health-2.1.7/install-sh

  • Committer: Package Import Robot
  • Author(s): Bernd Zeimetz
  • Date: 2013-05-21 22:11:50 UTC
  • mfrom: (5.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130521221150-k5bda5v5euvt7wg9
Tags: 6.20130521
* [e68c82e1] check_raid: do not run hpacucli if cciss_vol_status is available.
* [4a1c57e8] Also support tw-cli as additional name for the 3ware binary.
  Thanks to Dennis Hoppe
* [eb5e1c7c] Add /run/ to the check_libs ignore file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh
2
 
# install - install a program, script, or datafile
3
 
 
4
 
scriptversion=2003-09-24.23
5
 
 
6
 
# This originates from X11R5 (mit/util/scripts/install.sh), which was
7
 
# later released in X11R6 (xc/config/util/install.sh) with the
8
 
# following copyright and license.
9
 
#
10
 
# Copyright (C) 1994 X Consortium
11
 
#
12
 
# Permission is hereby granted, free of charge, to any person obtaining a copy
13
 
# of this software and associated documentation files (the "Software"), to
14
 
# deal in the Software without restriction, including without limitation the
15
 
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
16
 
# sell copies of the Software, and to permit persons to whom the Software is
17
 
# furnished to do so, subject to the following conditions:
18
 
#
19
 
# The above copyright notice and this permission notice shall be included in
20
 
# all copies or substantial portions of the Software.
21
 
#
22
 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
 
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
 
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
25
 
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26
 
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
27
 
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
 
#
29
 
# Except as contained in this notice, the name of the X Consortium shall not
30
 
# be used in advertising or otherwise to promote the sale, use or other deal-
31
 
# ings in this Software without prior written authorization from the X Consor-
32
 
# tium.
33
 
#
34
 
#
35
 
# FSF changes to this file are in the public domain.
36
 
#
37
 
# Calling this script install-sh is preferred over install.sh, to prevent
38
 
# `make' implicit rules from creating a file called install from it
39
 
# when there is no Makefile.
40
 
#
41
 
# This script is compatible with the BSD install script, but was written
42
 
# from scratch.  It can only install one file at a time, a restriction
43
 
# shared with many OS's install programs.
44
 
 
45
 
# set DOITPROG to echo to test this script
46
 
 
47
 
# Don't use :- since 4.3BSD and earlier shells don't like it.
48
 
doit="${DOITPROG-}"
49
 
 
50
 
# put in absolute paths if you don't have them in your path; or use env. vars.
51
 
 
52
 
mvprog="${MVPROG-mv}"
53
 
cpprog="${CPPROG-cp}"
54
 
chmodprog="${CHMODPROG-chmod}"
55
 
chownprog="${CHOWNPROG-chown}"
56
 
chgrpprog="${CHGRPPROG-chgrp}"
57
 
stripprog="${STRIPPROG-strip}"
58
 
rmprog="${RMPROG-rm}"
59
 
mkdirprog="${MKDIRPROG-mkdir}"
60
 
 
61
 
transformbasename=
62
 
transform_arg=
63
 
instcmd="$mvprog"
64
 
chmodcmd="$chmodprog 0755"
65
 
chowncmd=
66
 
chgrpcmd=
67
 
stripcmd=
68
 
rmcmd="$rmprog -f"
69
 
mvcmd="$mvprog"
70
 
src=
71
 
dst=
72
 
dir_arg=
73
 
 
74
 
usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
75
 
   or: $0 -d DIR1 DIR2...
76
 
 
77
 
In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
78
 
In the second, create the directory path DIR.
79
 
 
80
 
Options:
81
 
-b=TRANSFORMBASENAME
82
 
-c         copy source (using $cpprog) instead of moving (using $mvprog).
83
 
-d         create directories instead of installing files.
84
 
-g GROUP   $chgrp installed files to GROUP.
85
 
-m MODE    $chmod installed files to MODE.
86
 
-o USER    $chown installed files to USER.
87
 
-s         strip installed files (using $stripprog).
88
 
-t=TRANSFORM
89
 
--help     display this help and exit.
90
 
--version  display version info and exit.
91
 
 
92
 
Environment variables override the default commands:
93
 
  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
94
 
"
95
 
 
96
 
while test -n "$1"; do
97
 
  case $1 in
98
 
    -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
99
 
        shift
100
 
        continue;;
101
 
 
102
 
    -c) instcmd=$cpprog
103
 
        shift
104
 
        continue;;
105
 
 
106
 
    -d) dir_arg=true
107
 
        shift
108
 
        continue;;
109
 
 
110
 
    -g) chgrpcmd="$chgrpprog $2"
111
 
        shift
112
 
        shift
113
 
        continue;;
114
 
 
115
 
    --help) echo "$usage"; exit 0;;
116
 
 
117
 
    -m) chmodcmd="$chmodprog $2"
118
 
        shift
119
 
        shift
120
 
        continue;;
121
 
 
122
 
    -o) chowncmd="$chownprog $2"
123
 
        shift
124
 
        shift
125
 
        continue;;
126
 
 
127
 
    -s) stripcmd=$stripprog
128
 
        shift
129
 
        continue;;
130
 
 
131
 
    -t=*) transformarg=`echo $1 | sed 's/-t=//'`
132
 
        shift
133
 
        continue;;
134
 
 
135
 
    --version) echo "$0 $scriptversion"; exit 0;;
136
 
 
137
 
    *)  if test -z "$src"; then
138
 
          src=$1
139
 
        else
140
 
          # this colon is to work around a 386BSD /bin/sh bug
141
 
          :
142
 
          dst=$1
143
 
        fi
144
 
        shift
145
 
        continue;;
146
 
  esac
147
 
done
148
 
 
149
 
if test -z "$src"; then
150
 
  echo "$0: no input file specified." >&2
151
 
  exit 1
152
 
fi
153
 
 
154
 
# Protect names starting with `-'.
155
 
case $src in
156
 
  -*) src=./$src ;;
157
 
esac
158
 
 
159
 
if test -n "$dir_arg"; then
160
 
  dst=$src
161
 
  src=
162
 
 
163
 
  if test -d "$dst"; then
164
 
    instcmd=:
165
 
    chmodcmd=
166
 
  else
167
 
    instcmd=$mkdirprog
168
 
  fi
169
 
else
170
 
  # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
171
 
  # might cause directories to be created, which would be especially bad
172
 
  # if $src (and thus $dsttmp) contains '*'.
173
 
  if test ! -f "$src" && test ! -d "$src"; then
174
 
    echo "$0: $src does not exist." >&2
175
 
    exit 1
176
 
  fi
177
 
 
178
 
  if test -z "$dst"; then
179
 
    echo "$0: no destination specified." >&2
180
 
    exit 1
181
 
  fi
182
 
 
183
 
  # Protect names starting with `-'.
184
 
  case $dst in
185
 
    -*) dst=./$dst ;;
186
 
  esac
187
 
 
188
 
  # If destination is a directory, append the input filename; won't work
189
 
  # if double slashes aren't ignored.
190
 
  if test -d "$dst"; then
191
 
    dst=$dst/`basename "$src"`
192
 
  fi
193
 
fi
194
 
 
195
 
# This sed command emulates the dirname command.
196
 
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
197
 
 
198
 
# Make sure that the destination directory exists.
199
 
 
200
 
# Skip lots of stat calls in the usual case.
201
 
if test ! -d "$dstdir"; then
202
 
  defaultIFS='
203
 
        '
204
 
  IFS="${IFS-$defaultIFS}"
205
 
 
206
 
  oIFS=$IFS
207
 
  # Some sh's can't handle IFS=/ for some reason.
208
 
  IFS='%'
209
 
  set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
210
 
  IFS=$oIFS
211
 
 
212
 
  pathcomp=
213
 
 
214
 
  while test $# -ne 0 ; do
215
 
    pathcomp=$pathcomp$1
216
 
    shift
217
 
    test -d "$pathcomp" || $mkdirprog "$pathcomp"
218
 
    pathcomp=$pathcomp/
219
 
  done
220
 
fi
221
 
 
222
 
if test -n "$dir_arg"; then
223
 
  $doit $instcmd "$dst" \
224
 
    && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
225
 
    && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
226
 
    && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
227
 
    && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
228
 
 
229
 
else
230
 
  # If we're going to rename the final executable, determine the name now.
231
 
  if test -z "$transformarg"; then
232
 
    dstfile=`basename "$dst"`
233
 
  else
234
 
    dstfile=`basename "$dst" $transformbasename \
235
 
             | sed $transformarg`$transformbasename
236
 
  fi
237
 
 
238
 
  # don't allow the sed command to completely eliminate the filename.
239
 
  test -z "$dstfile" && dstfile=`basename "$dst"`
240
 
 
241
 
  # Make a couple of temp file names in the proper directory.
242
 
  dsttmp=$dstdir/_inst.$$_
243
 
  rmtmp=$dstdir/_rm.$$_
244
 
 
245
 
  # Trap to clean up those temp files at exit.
246
 
  trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
247
 
  trap '(exit $?); exit' 1 2 13 15
248
 
 
249
 
  # Move or copy the file name to the temp name
250
 
  $doit $instcmd "$src" "$dsttmp" &&
251
 
 
252
 
  # and set any options; do chmod last to preserve setuid bits.
253
 
  #
254
 
  # If any of these fail, we abort the whole thing.  If we want to
255
 
  # ignore errors from any of these, just make sure not to ignore
256
 
  # errors from the above "$doit $instcmd $src $dsttmp" command.
257
 
  #
258
 
  { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
259
 
    && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
260
 
    && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
261
 
    && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
262
 
 
263
 
  # Now remove or move aside any old file at destination location.  We
264
 
  # try this two ways since rm can't unlink itself on some systems and
265
 
  # the destination file might be busy for other reasons.  In this case,
266
 
  # the final cleanup might fail but the new file should still install
267
 
  # successfully.
268
 
  {
269
 
    if test -f "$dstdir/$dstfile"; then
270
 
      $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
271
 
      || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
272
 
      || {
273
 
          echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
274
 
          (exit 1); exit
275
 
      }
276
 
    else
277
 
      :
278
 
    fi
279
 
  } &&
280
 
 
281
 
  # Now rename the file to the real destination.
282
 
  $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
283
 
fi &&
284
 
 
285
 
# The final little trick to "correctly" pass the exit status to the exit trap.
286
 
{
287
 
  (exit 0); exit
288
 
}
289
 
 
290
 
# Local variables:
291
 
# eval: (add-hook 'write-file-hooks 'time-stamp)
292
 
# time-stamp-start: "scriptversion="
293
 
# time-stamp-format: "%:y-%02m-%02d.%02H"
294
 
# time-stamp-end: "$"
295
 
# End: