Changeset 8ce897a in mod_gnutls for config/install-sh


Ignore:
Timestamp:
Jan 11, 2013, 12:57:01 AM (7 years ago)
Author:
Daniel Kahn Gillmor <dkg@…>
Branches:
debian/master, debian/stretch-backports, jessie-backports, upstream
Children:
54b3065, f8ffc43
Parents:
9d9b093
Message:

Imported Upstream version 0.5.2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • config/install-sh

    r9d9b093 r8ce897a  
    22# install - install a program, script, or datafile
    33
    4 scriptversion=2006-10-14.15
     4scriptversion=2006-12-25.00
    55
    66# This originates from X11R5 (mit/util/scripts/install.sh), which was
     
    4949
    5050# Don't use :- since 4.3BSD and earlier shells don't like it.
    51 doit="${DOITPROG-}"
     51doit=${DOITPROG-}
    5252if test -z "$doit"; then
    5353  doit_exec=exec
     
    5959# or use environment vars.
    6060
    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=
     61chgrpprog=${CHGRPPROG-chgrp}
     62chmodprog=${CHMODPROG-chmod}
     63chownprog=${CHOWNPROG-chown}
     64cmpprog=${CMPPROG-cmp}
     65cpprog=${CPPROG-cp}
     66mkdirprog=${MKDIRPROG-mkdir}
     67mvprog=${MVPROG-mv}
     68rmprog=${RMPROG-rm}
     69stripprog=${STRIPPROG-strip}
     70
     71posix_glob='?'
     72initialize_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
    7182posix_mkdir=
    7283
     
    7485mode=0755
    7586
     87chgrpcmd=
    7688chmodcmd=$chmodprog
    7789chowncmd=
    78 chgrpcmd=
     90mvcmd=$mvprog
     91rmcmd="$rmprog -f"
    7992stripcmd=
    80 rmcmd="$rmprog -f"
    81 mvcmd="$mvprog"
     93
    8294src=
    8395dst=
    8496dir_arg=
    85 dstarg=
     97dst_arg=
     98
     99copy_on_change=false
    86100no_target_directory=
    87101
    88 usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
     102usage="\
     103Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
    89104   or: $0 [OPTION]... SRCFILES... DIRECTORY
    90105   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
     
    96111
    97112Options:
    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.
    108125
    109126Environment 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
    111129"
    112130
    113131while test $# -ne 0; do
    114132  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;;
    121138
    122139    -g) chgrpcmd="$chgrpprog $2"
    123         shift
    124         shift
    125         continue;;
     140        shift;;
    126141
    127142    --help) echo "$usage"; exit $?;;
    128143
    129144    -m) mode=$2
    130         shift
    131         shift
    132145        case $mode in
    133146          *' '* | *'    '* | *'
     
    136149            exit 1;;
    137150        esac
    138         continue;;
     151        shift;;
    139152
    140153    -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;;
    157162
    158163    --version) echo "$0 $scriptversion"; exit $?;;
     
    166171    *)  break;;
    167172  esac
     173  shift
    168174done
    169175
    170 if test $# -ne 0 && test -z "$dir_arg$dstarg"; then
     176if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
    171177  # When -d is used, all remaining arguments are directories to create.
    172178  # When -t is used, the destination is already specified.
     
    174180  for arg
    175181  do
    176     if test -n "$dstarg"; then
     182    if test -n "$dst_arg"; then
    177183      # $@ is not empty: it contains at least $arg.
    178       set fnord "$@" "$dstarg"
     184      set fnord "$@" "$dst_arg"
    179185      shift # fnord
    180186    fi
    181187    shift # arg
    182     dstarg=$arg
     188    dst_arg=$arg
    183189  done
    184190fi
     
    225231  # Protect names starting with `-'.
    226232  case $src in
    227     -*) src=./$src ;;
     233    -*) src=./$src;;
    228234  esac
    229235
     
    243249    fi
    244250
    245     if test -z "$dstarg"; then
     251    if test -z "$dst_arg"; then
    246252      echo "$0: no destination specified." >&2
    247253      exit 1
    248254    fi
    249255
    250     dst=$dstarg
     256    dst=$dst_arg
    251257    # Protect names starting with `-'.
    252258    case $dst in
    253       -*) dst=./$dst ;;
     259      -*) dst=./$dst;;
    254260    esac
    255261
     
    258264    if test -d "$dst"; then
    259265      if test -n "$no_target_directory"; then
    260         echo "$0: $dstarg: Is a directory" >&2
     266        echo "$0: $dst_arg: Is a directory" >&2
    261267        exit 1
    262268      fi
     
    379385
    380386      case $dstdir in
    381         /*) prefix=/ ;;
    382         -*) prefix=./ ;;
    383         *)  prefix= ;;
     387        /*) prefix='/';;
     388        -*) prefix='./';;
     389        *)  prefix='';;
    384390      esac
    385391
    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"
    394393
    395394      oIFS=$IFS
    396395      IFS=/
    397       $posix_glob && set -f
     396      $posix_glob set -f
    398397      set fnord $dstdir
    399398      shift
    400       $posix_glob && set +f
     399      $posix_glob set +f
    401400      IFS=$oIFS
    402401
     
    460459    # errors from the above "$doit $cpprog $src $dsttmp" command.
    461460    #
    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
    497509
    498510    trap '' 0
Note: See TracChangeset for help on using the changeset viewer.