Mercurial > hg > early-roguelike
annotate rogue5/install-sh @ 113:aa582a02eb5d
srogue: remove unnecessary pointer cast.
Casting char* to int before a comparison doesn't alter the result, and
isn't safe if sizeof(char *) != sizeof(int).
| author | John "Elwin" Edwards | 
|---|---|
| date | Thu, 27 Mar 2014 11:09:30 -0700 | 
| parents | f502bf60e6e4 | 
| children | 
| rev | line source | 
|---|---|
| 33 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 1 #!/bin/sh | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 2 # install - install a program, script, or datafile | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 3 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 4 scriptversion=2005-05-14.22 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 5 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 6 # This originates from X11R5 (mit/util/scripts/install.sh), which was | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 7 # later released in X11R6 (xc/config/util/install.sh) with the | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 8 # following copyright and license. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 9 # | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 10 # Copyright (C) 1994 X Consortium | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 11 # | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 12 # Permission is hereby granted, free of charge, to any person obtaining a copy | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 13 # of this software and associated documentation files (the "Software"), to | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 14 # deal in the Software without restriction, including without limitation the | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 15 # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 16 # sell copies of the Software, and to permit persons to whom the Software is | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 17 # furnished to do so, subject to the following conditions: | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 18 # | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 19 # The above copyright notice and this permission notice shall be included in | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 20 # all copies or substantial portions of the Software. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 21 # | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 22 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 23 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 24 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 25 # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 26 # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 27 # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 28 # | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 29 # Except as contained in this notice, the name of the X Consortium shall not | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 30 # be used in advertising or otherwise to promote the sale, use or other deal- | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 31 # ings in this Software without prior written authorization from the X Consor- | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 32 # tium. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 33 # | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 34 # | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 35 # FSF changes to this file are in the public domain. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 36 # | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 37 # Calling this script install-sh is preferred over install.sh, to prevent | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 38 # `make' implicit rules from creating a file called install from it | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 39 # when there is no Makefile. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 40 # | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 41 # This script is compatible with the BSD install script, but was written | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 42 # from scratch. It can only install one file at a time, a restriction | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 43 # shared with many OS's install programs. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 44 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 45 # set DOITPROG to echo to test this script | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 46 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 47 # Don't use :- since 4.3BSD and earlier shells don't like it. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 48 doit="${DOITPROG-}" | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 49 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 50 # put in absolute paths if you don't have them in your path; or use env. vars. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 51 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 52 mvprog="${MVPROG-mv}" | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 53 cpprog="${CPPROG-cp}" | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 54 chmodprog="${CHMODPROG-chmod}" | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 55 chownprog="${CHOWNPROG-chown}" | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 56 chgrpprog="${CHGRPPROG-chgrp}" | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 57 stripprog="${STRIPPROG-strip}" | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 58 rmprog="${RMPROG-rm}" | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 59 mkdirprog="${MKDIRPROG-mkdir}" | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 60 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 61 chmodcmd="$chmodprog 0755" | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 62 chowncmd= | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 63 chgrpcmd= | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 64 stripcmd= | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 65 rmcmd="$rmprog -f" | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 66 mvcmd="$mvprog" | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 67 src= | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 68 dst= | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 69 dir_arg= | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 70 dstarg= | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 71 no_target_directory= | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 72 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 73 usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 74 or: $0 [OPTION]... SRCFILES... DIRECTORY | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 75 or: $0 [OPTION]... -t DIRECTORY SRCFILES... | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 76 or: $0 [OPTION]... -d DIRECTORIES... | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 77 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 78 In the 1st form, copy SRCFILE to DSTFILE. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 79 In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 80 In the 4th, create DIRECTORIES. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 81 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 82 Options: | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 83 -c (ignored) | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 84 -d create directories instead of installing files. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 85 -g GROUP $chgrpprog installed files to GROUP. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 86 -m MODE $chmodprog installed files to MODE. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 87 -o USER $chownprog installed files to USER. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 88 -s $stripprog installed files. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 89 -t DIRECTORY install into DIRECTORY. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 90 -T report an error if DSTFILE is a directory. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 91 --help display this help and exit. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 92 --version display version info and exit. | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 93 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 94 Environment variables override the default commands: | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 95 CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 96 " | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 97 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 98 while test -n "$1"; do | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 99 case $1 in | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 100 -c) shift | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 101 continue;; | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 102 | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 103 -d) dir_arg=true | 
| 
f502bf60e6e4
Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
 elwin parents: diff
changeset | 104 shift | 
