-#!/bin/sh\r
-# install - install a program, script, or datafile\r
-\r
-scriptversion=2005-05-14.22\r
-\r
-# This originates from X11R5 (mit/util/scripts/install.sh), which was\r
-# later released in X11R6 (xc/config/util/install.sh) with the\r
-# following copyright and license.\r
-#\r
-# Copyright (C) 1994 X Consortium\r
-#\r
-# Permission is hereby granted, free of charge, to any person obtaining a copy\r
-# of this software and associated documentation files (the "Software"), to\r
-# deal in the Software without restriction, including without limitation the\r
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\r
-# sell copies of the Software, and to permit persons to whom the Software is\r
-# furnished to do so, subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be included in\r
-# all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN\r
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-\r
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-#\r
-# Except as contained in this notice, the name of the X Consortium shall not\r
-# be used in advertising or otherwise to promote the sale, use or other deal-\r
-# ings in this Software without prior written authorization from the X Consor-\r
-# tium.\r
-#\r
-#\r
-# FSF changes to this file are in the public domain.\r
-#\r
-# Calling this script install-sh is preferred over install.sh, to prevent\r
-# `make' implicit rules from creating a file called install from it\r
-# when there is no Makefile.\r
-#\r
-# This script is compatible with the BSD install script, but was written\r
-# from scratch. It can only install one file at a time, a restriction\r
-# shared with many OS's install programs.\r
-\r
-# set DOITPROG to echo to test this script\r
-\r
-# Don't use :- since 4.3BSD and earlier shells don't like it.\r
-doit="${DOITPROG-}"\r
-\r
-# put in absolute paths if you don't have them in your path; or use env. vars.\r
-\r
-mvprog="${MVPROG-mv}"\r
-cpprog="${CPPROG-cp}"\r
-chmodprog="${CHMODPROG-chmod}"\r
-chownprog="${CHOWNPROG-chown}"\r
-chgrpprog="${CHGRPPROG-chgrp}"\r
-stripprog="${STRIPPROG-strip}"\r
-rmprog="${RMPROG-rm}"\r
-mkdirprog="${MKDIRPROG-mkdir}"\r
-\r
-chmodcmd="$chmodprog 0755"\r
-chowncmd=\r
-chgrpcmd=\r
-stripcmd=\r
-rmcmd="$rmprog -f"\r
-mvcmd="$mvprog"\r
-src=\r
-dst=\r
-dir_arg=\r
-dstarg=\r
-no_target_directory=\r
-\r
-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE\r
- or: $0 [OPTION]... SRCFILES... DIRECTORY\r
- or: $0 [OPTION]... -t DIRECTORY SRCFILES...\r
- or: $0 [OPTION]... -d DIRECTORIES...\r
-\r
-In the 1st form, copy SRCFILE to DSTFILE.\r
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.\r
-In the 4th, create DIRECTORIES.\r
-\r
-Options:\r
--c (ignored)\r
--d create directories instead of installing files.\r
--g GROUP $chgrpprog installed files to GROUP.\r
--m MODE $chmodprog installed files to MODE.\r
--o USER $chownprog installed files to USER.\r
--s $stripprog installed files.\r
--t DIRECTORY install into DIRECTORY.\r
--T report an error if DSTFILE is a directory.\r
---help display this help and exit.\r
---version display version info and exit.\r
-\r
-Environment variables override the default commands:\r
- CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG\r
-"\r
-\r
-while test -n "$1"; do\r
- case $1 in\r
- -c) shift\r
- continue;;\r
-\r
- -d) dir_arg=true\r
- shift\r
- continue;;\r
-\r
- -g) chgrpcmd="$chgrpprog $2"\r
- shift\r
- shift\r
- continue;;\r
-\r
- --help) echo "$usage"; exit $?;;\r
-\r
- -m) chmodcmd="$chmodprog $2"\r
- shift\r
- shift\r
- continue;;\r
-\r
- -o) chowncmd="$chownprog $2"\r
- shift\r
- shift\r
- continue;;\r
-\r
- -s) stripcmd=$stripprog\r
- shift\r
- continue;;\r
-\r
- -t) dstarg=$2\r
- shift\r
- shift\r
- continue;;\r
-\r
- -T) no_target_directory=true\r
- shift\r
- continue;;\r
-\r
- --version) echo "$0 $scriptversion"; exit $?;;\r
-\r
- *) # When -d is used, all remaining arguments are directories to create.\r
- # When -t is used, the destination is already specified.\r
- test -n "$dir_arg$dstarg" && break\r
- # Otherwise, the last argument is the destination. Remove it from $@.\r
- for arg\r
- do\r
- if test -n "$dstarg"; then\r
- # $@ is not empty: it contains at least $arg.\r
- set fnord "$@" "$dstarg"\r
- shift # fnord\r
- fi\r
- shift # arg\r
- dstarg=$arg\r
- done\r
- break;;\r
- esac\r
-done\r
-\r
-if test -z "$1"; then\r
- if test -z "$dir_arg"; then\r
- echo "$0: no input file specified." >&2\r
- exit 1\r
- fi\r
- # It's OK to call `install-sh -d' without argument.\r
- # This can happen when creating conditional directories.\r
- exit 0\r
-fi\r
-\r
-for src\r
-do\r
- # Protect names starting with `-'.\r
- case $src in\r
- -*) src=./$src ;;\r
- esac\r
-\r
- if test -n "$dir_arg"; then\r
- dst=$src\r
- src=\r
-\r
- if test -d "$dst"; then\r
- mkdircmd=:\r
- chmodcmd=\r
- else\r
- mkdircmd=$mkdirprog\r
- fi\r
- else\r
- # Waiting for this to be detected by the "$cpprog $src $dsttmp" command\r
- # might cause directories to be created, which would be especially bad\r
- # if $src (and thus $dsttmp) contains '*'.\r
- if test ! -f "$src" && test ! -d "$src"; then\r
- echo "$0: $src does not exist." >&2\r
- exit 1\r
- fi\r
-\r
- if test -z "$dstarg"; then\r
- echo "$0: no destination specified." >&2\r
- exit 1\r
- fi\r
-\r
- dst=$dstarg\r
- # Protect names starting with `-'.\r
- case $dst in\r
- -*) dst=./$dst ;;\r
- esac\r
-\r
- # If destination is a directory, append the input filename; won't work\r
- # if double slashes aren't ignored.\r
- if test -d "$dst"; then\r
- if test -n "$no_target_directory"; then\r
- echo "$0: $dstarg: Is a directory" >&2\r
- exit 1\r
- fi\r
- dst=$dst/`basename "$src"`\r
- fi\r
- fi\r
-\r
- # This sed command emulates the dirname command.\r
- dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`\r
-\r
- # Make sure that the destination directory exists.\r
-\r
- # Skip lots of stat calls in the usual case.\r
- if test ! -d "$dstdir"; then\r
- defaultIFS='\r
- '\r
- IFS="${IFS-$defaultIFS}"\r
-\r
- oIFS=$IFS\r
- # Some sh's can't handle IFS=/ for some reason.\r
- IFS='%'\r
- set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`\r
- shift\r
- IFS=$oIFS\r
-\r
- pathcomp=\r
-\r
- while test $# -ne 0 ; do\r
- pathcomp=$pathcomp$1\r
- shift\r
- if test ! -d "$pathcomp"; then\r
- $mkdirprog "$pathcomp"\r
- # mkdir can fail with a `File exist' error in case several\r
- # install-sh are creating the directory concurrently. This\r
- # is OK.\r
- test -d "$pathcomp" || exit\r
- fi\r
- pathcomp=$pathcomp/\r
- done\r
- fi\r
-\r
- if test -n "$dir_arg"; then\r
- $doit $mkdircmd "$dst" \\r
- && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \\r
- && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \\r
- && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \\r
- && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }\r
-\r
- else\r
- dstfile=`basename "$dst"`\r
-\r
- # Make a couple of temp file names in the proper directory.\r
- dsttmp=$dstdir/_inst.$$_\r
- rmtmp=$dstdir/_rm.$$_\r
-\r
- # Trap to clean up those temp files at exit.\r
- trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0\r
- trap '(exit $?); exit' 1 2 13 15\r
-\r
- # Copy the file name to the temp name.\r
- $doit $cpprog "$src" "$dsttmp" &&\r
-\r
- # and set any options; do chmod last to preserve setuid bits.\r
- #\r
- # If any of these fail, we abort the whole thing. If we want to\r
- # ignore errors from any of these, just make sure not to ignore\r
- # errors from the above "$doit $cpprog $src $dsttmp" command.\r
- #\r
- { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \\r
- && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \\r
- && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \\r
- && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&\r
-\r
- # Now rename the file to the real destination.\r
- { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \\r
- || {\r
- # The rename failed, perhaps because mv can't rename something else\r
- # to itself, or perhaps because mv is so ancient that it does not\r
- # support -f.\r
-\r
- # Now remove or move aside any old file at destination location.\r
- # We try this two ways since rm can't unlink itself on some\r
- # systems and the destination file might be busy for other\r
- # reasons. In this case, the final cleanup might fail but the new\r
- # file should still install successfully.\r
- {\r
- if test -f "$dstdir/$dstfile"; then\r
- $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \\r
- || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \\r
- || {\r
- echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2\r
- (exit 1); exit 1\r
- }\r
- else\r
- :\r
- fi\r
- } &&\r
-\r
- # Now rename the file to the real destination.\r
- $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"\r
- }\r
- }\r
- fi || { (exit 1); exit 1; }\r
-done\r
-\r
-# The final little trick to "correctly" pass the exit status to the exit trap.\r
-{\r
- (exit 0); exit 0\r
-}\r
-\r
-# Local variables:\r
-# eval: (add-hook 'write-file-hooks 'time-stamp)\r
-# time-stamp-start: "scriptversion="\r
-# time-stamp-format: "%:y-%02m-%02d.%02H"\r
-# time-stamp-end: "$"\r
-# End:\r
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2005-05-14.22
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch. It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+chmodcmd="$chmodprog 0755"
+chowncmd=
+chgrpcmd=
+stripcmd=
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=
+dst=
+dir_arg=
+dstarg=
+no_target_directory=
+
+usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+-c (ignored)
+-d create directories instead of installing files.
+-g GROUP $chgrpprog installed files to GROUP.
+-m MODE $chmodprog installed files to MODE.
+-o USER $chownprog installed files to USER.
+-s $stripprog installed files.
+-t DIRECTORY install into DIRECTORY.
+-T report an error if DSTFILE is a directory.
+--help display this help and exit.
+--version display version info and exit.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+"
+
+while test -n "$1"; do
+ case $1 in
+ -c) shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd=$stripprog
+ shift
+ continue;;
+
+ -t) dstarg=$2
+ shift
+ shift
+ continue;;
+
+ -T) no_target_directory=true
+ shift
+ continue;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ *) # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ test -n "$dir_arg$dstarg" && break
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dstarg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dstarg"
+ shift # fnord
+ fi
+ shift # arg
+ dstarg=$arg
+ done
+ break;;
+ esac
+done
+
+if test -z "$1"; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call `install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+for src
+do
+ # Protect names starting with `-'.
+ case $src in
+ -*) src=./$src ;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ src=
+
+ if test -d "$dst"; then
+ mkdircmd=:
+ chmodcmd=
+ else
+ mkdircmd=$mkdirprog
+ fi
+ else
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dstarg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+
+ dst=$dstarg
+ # Protect names starting with `-'.
+ case $dst in
+ -*) dst=./$dst ;;
+ esac
+
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+ echo "$0: $dstarg: Is a directory" >&2
+ exit 1
+ fi
+ dst=$dst/`basename "$src"`
+ fi
+ fi
+
+ # This sed command emulates the dirname command.
+ dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+
+ # Make sure that the destination directory exists.
+
+ # Skip lots of stat calls in the usual case.
+ if test ! -d "$dstdir"; then
+ defaultIFS='
+ '
+ IFS="${IFS-$defaultIFS}"
+
+ oIFS=$IFS
+ # Some sh's can't handle IFS=/ for some reason.
+ IFS='%'
+ set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+ shift
+ IFS=$oIFS
+
+ pathcomp=
+
+ while test $# -ne 0 ; do
+ pathcomp=$pathcomp$1
+ shift
+ if test ! -d "$pathcomp"; then
+ $mkdirprog "$pathcomp"
+ # mkdir can fail with a `File exist' error in case several
+ # install-sh are creating the directory concurrently. This
+ # is OK.
+ test -d "$pathcomp" || exit
+ fi
+ pathcomp=$pathcomp/
+ done
+ fi
+
+ if test -n "$dir_arg"; then
+ $doit $mkdircmd "$dst" \
+ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
+ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
+
+ else
+ dstfile=`basename "$dst"`
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+ trap '(exit $?); exit' 1 2 13 15
+
+ # Copy the file name to the temp name.
+ $doit $cpprog "$src" "$dsttmp" &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
+ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
+
+ # Now rename the file to the real destination.
+ { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
+ || {
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ if test -f "$dstdir/$dstfile"; then
+ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
+ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
+ || {
+ echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+ (exit 1); exit 1
+ }
+ else
+ :
+ fi
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+ }
+ }
+ fi || { (exit 1); exit 1; }
+done
+
+# The final little trick to "correctly" pass the exit status to the exit trap.
+{
+ (exit 0); exit 0
+}
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End: