|
version 1.1.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 |