version 1.1, 2012/02/21 23:05:51
|
version 1.1.1.2, 2013/07/22 08:25:56
|
Line 1
|
Line 1
|
#!/bin/sh |
#!/bin/sh |
# install - install a program, script, or datafile |
# install - install a program, script, or datafile |
|
|
scriptversion=2009-04-28.21; # UTC | scriptversion=2011-11-20.07; # UTC |
|
|
# This originates from X11R5 (mit/util/scripts/install.sh), which was |
# This originates from X11R5 (mit/util/scripts/install.sh), which was |
# later released in X11R6 (xc/config/util/install.sh) with the |
# later released in X11R6 (xc/config/util/install.sh) with the |
Line 35 scriptversion=2009-04-28.21; # UTC
|
Line 35 scriptversion=2009-04-28.21; # UTC
|
# FSF changes to this file are in the public domain. |
# FSF changes to this file are in the public domain. |
# |
# |
# Calling this script install-sh is preferred over install.sh, to prevent |
# Calling this script install-sh is preferred over install.sh, to prevent |
# `make' implicit rules from creating a file called install from it | # 'make' implicit rules from creating a file called install from it |
# when there is no Makefile. |
# when there is no Makefile. |
# |
# |
# This script is compatible with the BSD install script, but was written |
# This script is compatible with the BSD install script, but was written |
Line 156 while test $# -ne 0; do
|
Line 156 while test $# -ne 0; do
|
-s) stripcmd=$stripprog;; |
-s) stripcmd=$stripprog;; |
|
|
-t) dst_arg=$2 |
-t) dst_arg=$2 |
|
# Protect names problematic for 'test' and other utilities. |
|
case $dst_arg in |
|
-* | [=\(\)!]) dst_arg=./$dst_arg;; |
|
esac |
shift;; |
shift;; |
|
|
-T) no_target_directory=true;; |
-T) no_target_directory=true;; |
Line 186 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
Line 190 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
fi |
fi |
shift # arg |
shift # arg |
dst_arg=$arg |
dst_arg=$arg |
|
# Protect names problematic for 'test' and other utilities. |
|
case $dst_arg in |
|
-* | [=\(\)!]) dst_arg=./$dst_arg;; |
|
esac |
done |
done |
fi |
fi |
|
|
Line 194 if test $# -eq 0; then
|
Line 202 if test $# -eq 0; then
|
echo "$0: no input file specified." >&2 |
echo "$0: no input file specified." >&2 |
exit 1 |
exit 1 |
fi |
fi |
# It's OK to call `install-sh -d' without argument. | # It's OK to call 'install-sh -d' without argument. |
# This can happen when creating conditional directories. |
# This can happen when creating conditional directories. |
exit 0 |
exit 0 |
fi |
fi |
|
|
if test -z "$dir_arg"; then |
if test -z "$dir_arg"; then |
trap '(exit $?); exit' 1 2 13 15 | do_exit='(exit $ret); exit $ret' |
| trap "ret=129; $do_exit" 1 |
| trap "ret=130; $do_exit" 2 |
| trap "ret=141; $do_exit" 13 |
| trap "ret=143; $do_exit" 15 |
|
|
# Set umask so as not to create temps with too-generous modes. |
# Set umask so as not to create temps with too-generous modes. |
# However, 'strip' requires both read and write access to temps. |
# However, 'strip' requires both read and write access to temps. |
Line 228 fi
|
Line 240 fi
|
|
|
for src |
for src |
do |
do |
# Protect names starting with `-'. | # Protect names problematic for 'test' and other utilities. |
case $src in |
case $src in |
-*) src=./$src;; | -* | [=\(\)!]) src=./$src;; |
esac |
esac |
|
|
if test -n "$dir_arg"; then |
if test -n "$dir_arg"; then |
Line 252 do
|
Line 264 do
|
echo "$0: no destination specified." >&2 |
echo "$0: no destination specified." >&2 |
exit 1 |
exit 1 |
fi |
fi |
|
|
dst=$dst_arg |
dst=$dst_arg |
# Protect names starting with `-'. |
|
case $dst in |
|
-*) dst=./$dst;; |
|
esac |
|
|
|
# If destination is a directory, append the input filename; won't work |
# If destination is a directory, append the input filename; won't work |
# if double slashes aren't ignored. |
# if double slashes aren't ignored. |
Line 347 do
|
Line 354 do
|
if test -z "$dir_arg" || { |
if test -z "$dir_arg" || { |
# Check for POSIX incompatibilities with -m. |
# Check for POSIX incompatibilities with -m. |
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or |
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or |
# other-writeable bit of parent directory when it shouldn't. | # other-writable bit of parent directory when it shouldn't. |
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory. |
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory. |
ls_ld_tmpdir=`ls -ld "$tmpdir"` |
ls_ld_tmpdir=`ls -ld "$tmpdir"` |
case $ls_ld_tmpdir in |
case $ls_ld_tmpdir in |
Line 385 do
|
Line 392 do
|
|
|
case $dstdir in |
case $dstdir in |
/*) prefix='/';; |
/*) prefix='/';; |
-*) prefix='./';; | [-=\(\)!]*) prefix='./';; |
*) prefix='';; |
*) prefix='';; |
esac |
esac |
|
|
Line 403 do
|
Line 410 do
|
|
|
for d |
for d |
do |
do |
test -z "$d" && continue | test X"$d" = X && continue |
|
|
prefix=$prefix$d |
prefix=$prefix$d |
if test -d "$prefix"; then |
if test -d "$prefix"; then |