Changeset 8ce897a in mod_gnutls for config/install-sh
- Timestamp:
- Jan 11, 2013, 12:57:01 AM (8 years ago)
- Branches:
- debian/master, debian/stretch-backports, jessie-backports, upstream
- Children:
- 54b3065, f8ffc43
- Parents:
- 9d9b093
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
config/install-sh
r9d9b093 r8ce897a 2 2 # install - install a program, script, or datafile 3 3 4 scriptversion=2006-1 0-14.154 scriptversion=2006-12-25.00 5 5 6 6 # This originates from X11R5 (mit/util/scripts/install.sh), which was … … 49 49 50 50 # Don't use :- since 4.3BSD and earlier shells don't like it. 51 doit= "${DOITPROG-}"51 doit=${DOITPROG-} 52 52 if test -z "$doit"; then 53 53 doit_exec=exec … … 59 59 # or use environment vars. 60 60 61 mvprog="${MVPROG-mv}" 62 cpprog="${CPPROG-cp}" 63 chmodprog="${CHMODPROG-chmod}" 64 chownprog="${CHOWNPROG-chown}" 65 chgrpprog="${CHGRPPROG-chgrp}" 66 stripprog="${STRIPPROG-strip}" 67 rmprog="${RMPROG-rm}" 68 mkdirprog="${MKDIRPROG-mkdir}" 69 70 posix_glob= 61 chgrpprog=${CHGRPPROG-chgrp} 62 chmodprog=${CHMODPROG-chmod} 63 chownprog=${CHOWNPROG-chown} 64 cmpprog=${CMPPROG-cmp} 65 cpprog=${CPPROG-cp} 66 mkdirprog=${MKDIRPROG-mkdir} 67 mvprog=${MVPROG-mv} 68 rmprog=${RMPROG-rm} 69 stripprog=${STRIPPROG-strip} 70 71 posix_glob='?' 72 initialize_posix_glob=' 73 test "$posix_glob" != "?" || { 74 if (set -f) 2>/dev/null; then 75 posix_glob= 76 else 77 posix_glob=: 78 fi 79 } 80 ' 81 71 82 posix_mkdir= 72 83 … … 74 85 mode=0755 75 86 87 chgrpcmd= 76 88 chmodcmd=$chmodprog 77 89 chowncmd= 78 chgrpcmd= 90 mvcmd=$mvprog 91 rmcmd="$rmprog -f" 79 92 stripcmd= 80 rmcmd="$rmprog -f" 81 mvcmd="$mvprog" 93 82 94 src= 83 95 dst= 84 96 dir_arg= 85 dstarg= 97 dst_arg= 98 99 copy_on_change=false 86 100 no_target_directory= 87 101 88 usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE 102 usage="\ 103 Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE 89 104 or: $0 [OPTION]... SRCFILES... DIRECTORY 90 105 or: $0 [OPTION]... -t DIRECTORY SRCFILES... … … 96 111 97 112 Options: 98 -c (ignored) 99 -d create directories instead of installing files. 100 -g GROUP $chgrpprog installed files to GROUP. 101 -m MODE $chmodprog installed files to MODE. 102 -o USER $chownprog installed files to USER. 103 -s $stripprog installed files. 104 -t DIRECTORY install into DIRECTORY. 105 -T report an error if DSTFILE is a directory. 106 --help display this help and exit. 107 --version display version info and exit. 113 --help display this help and exit. 114 --version display version info and exit. 115 116 -c (ignored) 117 -C install only if different (preserve the last data modification time) 118 -d create directories instead of installing files. 119 -g GROUP $chgrpprog installed files to GROUP. 120 -m MODE $chmodprog installed files to MODE. 121 -o USER $chownprog installed files to USER. 122 -s $stripprog installed files. 123 -t DIRECTORY install into DIRECTORY. 124 -T report an error if DSTFILE is a directory. 108 125 109 126 Environment variables override the default commands: 110 CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG 127 CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG 128 RMPROG STRIPPROG 111 129 " 112 130 113 131 while test $# -ne 0; do 114 132 case $1 in 115 -c) shift 116 continue;; 117 118 -d) dir_arg=true 119 shift 120 continue;; 133 -c) ;; 134 135 -C) copy_on_change=true;; 136 137 -d) dir_arg=true;; 121 138 122 139 -g) chgrpcmd="$chgrpprog $2" 123 shift 124 shift 125 continue;; 140 shift;; 126 141 127 142 --help) echo "$usage"; exit $?;; 128 143 129 144 -m) mode=$2 130 shift131 shift132 145 case $mode in 133 146 *' '* | *' '* | *' … … 136 149 exit 1;; 137 150 esac 138 continue;;151 shift;; 139 152 140 153 -o) chowncmd="$chownprog $2" 141 shift 142 shift 143 continue;; 144 145 -s) stripcmd=$stripprog 146 shift 147 continue;; 148 149 -t) dstarg=$2 150 shift 151 shift 152 continue;; 153 154 -T) no_target_directory=true 155 shift 156 continue;; 154 shift;; 155 156 -s) stripcmd=$stripprog;; 157 158 -t) dst_arg=$2 159 shift;; 160 161 -T) no_target_directory=true;; 157 162 158 163 --version) echo "$0 $scriptversion"; exit $?;; … … 166 171 *) break;; 167 172 esac 173 shift 168 174 done 169 175 170 if test $# -ne 0 && test -z "$dir_arg$dst arg"; then176 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then 171 177 # When -d is used, all remaining arguments are directories to create. 172 178 # When -t is used, the destination is already specified. … … 174 180 for arg 175 181 do 176 if test -n "$dst arg"; then182 if test -n "$dst_arg"; then 177 183 # $@ is not empty: it contains at least $arg. 178 set fnord "$@" "$dst arg"184 set fnord "$@" "$dst_arg" 179 185 shift # fnord 180 186 fi 181 187 shift # arg 182 dst arg=$arg188 dst_arg=$arg 183 189 done 184 190 fi … … 225 231 # Protect names starting with `-'. 226 232 case $src in 227 -*) src=./$src 233 -*) src=./$src;; 228 234 esac 229 235 … … 243 249 fi 244 250 245 if test -z "$dst arg"; then251 if test -z "$dst_arg"; then 246 252 echo "$0: no destination specified." >&2 247 253 exit 1 248 254 fi 249 255 250 dst=$dst arg256 dst=$dst_arg 251 257 # Protect names starting with `-'. 252 258 case $dst in 253 -*) dst=./$dst 259 -*) dst=./$dst;; 254 260 esac 255 261 … … 258 264 if test -d "$dst"; then 259 265 if test -n "$no_target_directory"; then 260 echo "$0: $dst arg: Is a directory" >&2266 echo "$0: $dst_arg: Is a directory" >&2 261 267 exit 1 262 268 fi … … 379 385 380 386 case $dstdir in 381 /*) prefix= /;;382 -*) prefix= ./;;383 *) prefix= 387 /*) prefix='/';; 388 -*) prefix='./';; 389 *) prefix='';; 384 390 esac 385 391 386 case $posix_glob in 387 '') 388 if (set -f) 2>/dev/null; then 389 posix_glob=true 390 else 391 posix_glob=false 392 fi ;; 393 esac 392 eval "$initialize_posix_glob" 394 393 395 394 oIFS=$IFS 396 395 IFS=/ 397 $posix_glob &&set -f396 $posix_glob set -f 398 397 set fnord $dstdir 399 398 shift 400 $posix_glob &&set +f399 $posix_glob set +f 401 400 IFS=$oIFS 402 401 … … 460 459 # errors from the above "$doit $cpprog $src $dsttmp" command. 461 460 # 462 { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ 463 && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ 464 && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ 465 && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && 466 467 # Now rename the file to the real destination. 468 { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \ 469 || { 470 # The rename failed, perhaps because mv can't rename something else 471 # to itself, or perhaps because mv is so ancient that it does not 472 # support -f. 473 474 # Now remove or move aside any old file at destination location. 475 # We try this two ways since rm can't unlink itself on some 476 # systems and the destination file might be busy for other 477 # reasons. In this case, the final cleanup might fail but the new 478 # file should still install successfully. 479 { 480 if test -f "$dst"; then 481 $doit $rmcmd -f "$dst" 2>/dev/null \ 482 || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \ 483 && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\ 484 || { 485 echo "$0: cannot unlink or rename $dst" >&2 486 (exit 1); exit 1 487 } 488 else 489 : 490 fi 491 } && 492 493 # Now rename the file to the real destination. 494 $doit $mvcmd "$dsttmp" "$dst" 495 } 496 } || exit 1 461 { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && 462 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && 463 { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && 464 { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && 465 466 # If -C, don't bother to copy if it wouldn't change the file. 467 if $copy_on_change && 468 old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && 469 new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && 470 471 eval "$initialize_posix_glob" && 472 $posix_glob set -f && 473 set X $old && old=:$2:$4:$5:$6 && 474 set X $new && new=:$2:$4:$5:$6 && 475 $posix_glob set +f && 476 477 test "$old" = "$new" && 478 $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 479 then 480 rm -f "$dsttmp" 481 else 482 # Rename the file to the real destination. 483 $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || 484 485 # The rename failed, perhaps because mv can't rename something else 486 # to itself, or perhaps because mv is so ancient that it does not 487 # support -f. 488 { 489 # Now remove or move aside any old file at destination location. 490 # We try this two ways since rm can't unlink itself on some 491 # systems and the destination file might be busy for other 492 # reasons. In this case, the final cleanup might fail but the new 493 # file should still install successfully. 494 { 495 test ! -f "$dst" || 496 $doit $rmcmd -f "$dst" 2>/dev/null || 497 { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && 498 { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } 499 } || 500 { echo "$0: cannot unlink or rename $dst" >&2 501 (exit 1); exit 1 502 } 503 } && 504 505 # Now rename the file to the real destination. 506 $doit $mvcmd "$dsttmp" "$dst" 507 } 508 fi || exit 1 497 509 498 510 trap '' 0
Note: See TracChangeset
for help on using the changeset viewer.