texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

texinfo install-sh,1.1.1.1,1.2


From: karl
Subject: texinfo install-sh,1.1.1.1,1.2
Date: Fri, 9 Jan 2004 14:33:39 +0100

Update of /cvsroot/texinfo/texinfo
In directory sheep:/tmp/cvs-serv22585

Modified Files:
        install-sh 
Log Message:
.

Index: install-sh
===================================================================
RCS file: /cvsroot/texinfo/texinfo/install-sh,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** install-sh  6 Dec 2003 01:30:41 -0000       1.1.1.1
--- install-sh  9 Jan 2004 13:33:37 -0000       1.2
***************
*** 2,6 ****
  # install - install a program, script, or datafile
  
! scriptversion=2003-09-24.23
  
  # This originates from X11R5 (mit/util/scripts/install.sh), which was
--- 2,6 ----
  # install - install a program, script, or datafile
  
! scriptversion=2004-01-08.23
  
  # This originates from X11R5 (mit/util/scripts/install.sh), which was
***************
*** 73,77 ****
  
  usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
!    or: $0 -d DIR1 DIR2...
  
  In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
--- 73,78 ----
  
  usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
!    or: $0 [OPTION]... SRCFILES... DIRECTORY
!    or: $0 -d DIRECTORIES...
  
  In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
***************
*** 135,285 ****
      --version) echo "$0 $scriptversion"; exit 0;;
  
!     *)  if test -z "$src"; then
!           src=$1
!         else
!           # this colon is to work around a 386BSD /bin/sh bug
!           :
!           dst=$1
!         fi
!         shift
!         continue;;
    esac
  done
  
! if test -z "$src"; then
!   echo "$0: no input file specified." >&2
!   exit 1
  fi
  
! # Protect names starting with `-'.
! case $src in
!   -*) src=./$src ;;
! esac
  
! if test -n "$dir_arg"; then
!   dst=$src
!   src=
  
!   if test -d "$dst"; then
!     instcmd=:
!     chmodcmd=
    else
!     instcmd=$mkdirprog
!   fi
! else
!   # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
!   # might cause directories to be created, which would be especially bad
!   # if $src (and thus $dsttmp) contains '*'.
!   if test ! -f "$src" && test ! -d "$src"; then
!     echo "$0: $src does not exist." >&2
!     exit 1
!   fi
  
!   if test -z "$dst"; then
!     echo "$0: no destination specified." >&2
!     exit 1
!   fi
  
!   # Protect names starting with `-'.
!   case $dst in
!     -*) dst=./$dst ;;
!   esac
  
!   # If destination is a directory, append the input filename; won't work
!   # if double slashes aren't ignored.
!   if test -d "$dst"; then
!     dst=$dst/`basename "$src"`
    fi
- fi
  
! # This sed command emulates the dirname command.
! dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
  
! # Make sure that the destination directory exists.
  
! # Skip lots of stat calls in the usual case.
! if test ! -d "$dstdir"; then
!   defaultIFS='
!       '
!   IFS="${IFS-$defaultIFS}"
  
!   oIFS=$IFS
!   # Some sh's can't handle IFS=/ for some reason.
!   IFS='%'
!   set - `echo "$dstdir" | sed -e 's@/@address@hidden' -e 'address@hidden@/@'`
!   IFS=$oIFS
  
!   pathcomp=
  
!   while test $# -ne 0 ; do
!     pathcomp=$pathcomp$1
!     shift
!     test -d "$pathcomp" || $mkdirprog "$pathcomp"
!     pathcomp=$pathcomp/
!   done
! fi
  
! if test -n "$dir_arg"; then
!   $doit $instcmd "$dst" \
!     && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
!     && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
!     && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
!     && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
  
- else
-   # If we're going to rename the final executable, determine the name now.
-   if test -z "$transformarg"; then
-     dstfile=`basename "$dst"`
    else
!     dstfile=`basename "$dst" $transformbasename \
!              | sed $transformarg`$transformbasename
!   fi
  
!   # don't allow the sed command to completely eliminate the filename.
!   test -z "$dstfile" && dstfile=`basename "$dst"`
  
!   # Make a couple of temp file names in the proper directory.
!   dsttmp=$dstdir/_inst.$$_
!   rmtmp=$dstdir/_rm.$$_
  
!   # Trap to clean up those temp files at exit.
!   trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
!   trap '(exit $?); exit' 1 2 13 15
  
!   # Move or copy the file name to the temp name
!   $doit $instcmd "$src" "$dsttmp" &&
  
!   # and set any options; do chmod last to preserve setuid bits.
!   #
!   # If any of these fail, we abort the whole thing.  If we want to
!   # ignore errors from any of these, just make sure not to ignore
!   # errors from the above "$doit $instcmd $src $dsttmp" command.
!   #
!   { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
!     && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
!     && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
!     && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
  
!   # Now remove or move aside any old file at destination location.  We
!   # try this two ways since rm can't unlink itself on some systems and
!   # the destination file might be busy for other reasons.  In this case,
!   # the final cleanup might fail but the new file should still install
!   # successfully.
!   {
!     if test -f "$dstdir/$dstfile"; then
!       $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
!       || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
!       || {
!         echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
!         (exit 1); exit
!       }
!     else
!       :
!     fi
!   } &&
  
!   # Now rename the file to the real destination.
!   $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
! fi &&
  
  # The final little trick to "correctly" pass the exit status to the exit trap.
--- 136,299 ----
      --version) echo "$0 $scriptversion"; exit 0;;
  
!     *)  # When -d is used, all remaining arguments are directories to create.
!       test -n "$dir_arg" && break
!         # Otherwise, the last argument is the destination.  Remove it from 
address@hidden
!       for arg
!       do
!         shift
!           if test -n "$dstarg"; then
!           set fnord "$@" "$dstarg"
!           shift
!         fi
!         dstarg=$arg
!       done
!       break;;
    esac
  done
  
! if test -z "$1"; then
!   if test -z "$dir_arg"; then
!     echo "$0: no input file specified." >&2
!     exit 1
!   fi
!   # It's OK to call `install-sh -d' without argument.
!   # This can happen when creating conditional directories.
!   exit 0
  fi
  
! for src
! do
!   # Protect names starting with `-'.
!   case $src in
!     -*) src=./$src ;;
!   esac
  
!   if test -n "$dir_arg"; then
!     dst=$src
!     src=
  
!     if test -d "$dst"; then
!       instcmd=:
!       chmodcmd=
!     else
!       instcmd=$mkdirprog
!     fi
    else
!     # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
!     # might cause directories to be created, which would be especially bad
!     # if $src (and thus $dsttmp) contains '*'.
!     if test ! -f "$src" && test ! -d "$src"; then
!       echo "$0: $src does not exist." >&2
!       exit 1
!     fi
  
!     if test -z "$dstarg"; then
!       echo "$0: no destination specified." >&2
!       exit 1
!     fi
  
!     dst=$dstarg
!     # Protect names starting with `-'.
!     case $dst in
!       -*) dst=./$dst ;;
!     esac
  
!     # If destination is a directory, append the input filename; won't work
!     # if double slashes aren't ignored.
!     if test -d "$dst"; then
!       dst=$dst/`basename "$src"`
!     fi
    fi
  
!   # This sed command emulates the dirname command.
!   dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
  
!   # Make sure that the destination directory exists.
  
!   # Skip lots of stat calls in the usual case.
!   if test ! -d "$dstdir"; then
!     defaultIFS='
!       '
!     IFS="${IFS-$defaultIFS}"
  
!     oIFS=$IFS
!     # Some sh's can't handle IFS=/ for some reason.
!     IFS='%'
!     set - `echo "$dstdir" | sed -e 's@/@address@hidden' -e 
'address@hidden@/@'`
!     IFS=$oIFS
  
!     pathcomp=
  
!     while test $# -ne 0 ; do
!       pathcomp=$pathcomp$1
!       shift
!       test -d "$pathcomp" || $mkdirprog "$pathcomp"
!       pathcomp=$pathcomp/
!     done
!   fi
  
!   if test -n "$dir_arg"; then
!     $doit $instcmd "$dst" \
!       && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
!       && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
!       && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
!       && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
  
    else
!     # If we're going to rename the final executable, determine the name now.
!     if test -z "$transformarg"; then
!       dstfile=`basename "$dst"`
!     else
!       dstfile=`basename "$dst" $transformbasename \
!                | sed $transformarg`$transformbasename
!     fi
  
!     # don't allow the sed command to completely eliminate the filename.
!     test -z "$dstfile" && dstfile=`basename "$dst"`
  
!     # Make a couple of temp file names in the proper directory.
!     dsttmp=$dstdir/_inst.$$_
!     rmtmp=$dstdir/_rm.$$_
  
!     # Trap to clean up those temp files at exit.
!     trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
!     trap '(exit $?); exit' 1 2 13 15
  
!     # Move or copy the file name to the temp name
!     $doit $instcmd "$src" "$dsttmp" &&
  
!     # and set any options; do chmod last to preserve setuid bits.
!     #
!     # If any of these fail, we abort the whole thing.  If we want to
!     # ignore errors from any of these, just make sure not to ignore
!     # errors from the above "$doit $instcmd $src $dsttmp" command.
!     #
!     { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
!       && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
!       && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
!       && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
  
!     # Now remove or move aside any old file at destination location.  We
!     # try this two ways since rm can't unlink itself on some systems and
!     # the destination file might be busy for other reasons.  In this case,
!     # the final cleanup might fail but the new file should still install
!     # successfully.
!     {
!       if test -f "$dstdir/$dstfile"; then
!         $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
!         || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
!         || {
!         echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
!         (exit 1); exit
!         }
!       else
!         :
!       fi
!     } &&
  
!     # Now rename the file to the real destination.
!     $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
!   fi || { (exit 1); exit; }
! done
  
  # The final little trick to "correctly" pass the exit status to the exit trap.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]