|
|
1.1 ! root 1: #!/bin/sh ! 2: ! 3: # ! 4: # install - install a program, script, or datafile ! 5: # This comes from X11R5; it is not part of GNU. ! 6: # ! 7: # $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $ ! 8: # ! 9: # This script is compatible with the BSD install script, but was written ! 10: # from scratch. ! 11: # ! 12: ! 13: ! 14: # set DOITPROG to echo to test this script ! 15: ! 16: # Don't use :- since 4.3BSD and earlier shells don't like it. ! 17: doit="${DOITPROG-}" ! 18: ! 19: ! 20: # put in absolute paths if you don't have them in your path; or use env. vars. ! 21: ! 22: mvprog="${MVPROG-mv}" ! 23: cpprog="${CPPROG-cp}" ! 24: chmodprog="${CHMODPROG-chmod}" ! 25: chownprog="${CHOWNPROG-chown}" ! 26: chgrpprog="${CHGRPPROG-chgrp}" ! 27: stripprog="${STRIPPROG-strip}" ! 28: rmprog="${RMPROG-rm}" ! 29: ! 30: instcmd="$mvprog" ! 31: chmodcmd="" ! 32: chowncmd="" ! 33: chgrpcmd="" ! 34: stripcmd="" ! 35: rmcmd="$rmprog -f" ! 36: mvcmd="$mvprog" ! 37: src="" ! 38: dst="" ! 39: ! 40: while [ x"$1" != x ]; do ! 41: case $1 in ! 42: -c) instcmd="$cpprog" ! 43: shift ! 44: continue;; ! 45: ! 46: -m) chmodcmd="$chmodprog $2" ! 47: shift ! 48: shift ! 49: continue;; ! 50: ! 51: -o) chowncmd="$chownprog $2" ! 52: shift ! 53: shift ! 54: continue;; ! 55: ! 56: -g) chgrpcmd="$chgrpprog $2" ! 57: shift ! 58: shift ! 59: continue;; ! 60: ! 61: -s) stripcmd="$stripprog" ! 62: shift ! 63: continue;; ! 64: ! 65: *) if [ x"$src" = x ] ! 66: then ! 67: src=$1 ! 68: else ! 69: dst=$1 ! 70: fi ! 71: shift ! 72: continue;; ! 73: esac ! 74: done ! 75: ! 76: if [ x"$src" = x ] ! 77: then ! 78: echo "install: no input file specified" ! 79: exit 1 ! 80: fi ! 81: ! 82: if [ x"$dst" = x ] ! 83: then ! 84: echo "install: no destination specified" ! 85: exit 1 ! 86: fi ! 87: ! 88: ! 89: # If destination is a directory, append the input filename; if your system ! 90: # does not like double slashes in filenames, you may need to add some logic ! 91: ! 92: if [ -d $dst ] ! 93: then ! 94: dst="$dst"/`basename $src` ! 95: fi ! 96: ! 97: # Make a temp file name in the proper directory. ! 98: ! 99: dstdir=`dirname $dst` ! 100: dsttmp=$dstdir/#inst.$$# ! 101: ! 102: # Move or copy the file name to the temp name ! 103: ! 104: $doit $instcmd $src $dsttmp ! 105: ! 106: # and set any options; do chmod last to preserve setuid bits ! 107: ! 108: if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi ! 109: if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi ! 110: if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi ! 111: if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi ! 112: ! 113: # Now rename the file to the real destination. ! 114: ! 115: $doit $rmcmd $dst ! 116: $doit $mvcmd $dsttmp $dst ! 117: ! 118: ! 119: exit 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.