darcs-cabalized 2.0.2 → 2.0.2.1
raw patch · 2 files changed
+327/−2 lines, 2 files
Files
- darcs-cabalized.cabal +2/−2
- install-sh +325/−0
darcs-cabalized.cabal view
@@ -1,5 +1,5 @@ Name: darcs-cabalized-version: 2.0.2+version: 2.0.2.1 License: GPL License-file: COPYING Author: David Roundy <droundy@darcs.net>, <darcs-devel@darcs.net>, et al.@@ -46,7 +46,7 @@ -- the user wishes to re-autoconf on her system. darcs.buildinfo, darcs.buildinfo.in, configure, configure.ac, autoconf.mk, autoconf.mk.in, aclocal.m4, src/Autoconf.lhs.in,- src/ThisVersion.lhs.in,+ src/ThisVersion.lhs.in, install-sh, -- Windows files src/win32/send_email.c, src/win32/send_email.h, src/win32/sys/mman.h, src/win32/CtrlC.hs, src/win32/System/Posix/Files.hsc,
+ install-sh view
@@ -0,0 +1,325 @@+#!/bin/sh+# install - install a program, script, or datafile++scriptversion=2004-04-01.17++# This originates from X11R5 (mit/util/scripts/install.sh), which was+# later released in X11R6 (xc/config/util/install.sh) with the+# following copyright and license.+#+# Copyright (C) 1994 X Consortium+#+# Permission is hereby granted, free of charge, to any person obtaining a copy+# of this software and associated documentation files (the "Software"), to+# deal in the Software without restriction, including without limitation the+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or+# sell copies of the Software, and to permit persons to whom the Software is+# furnished to do so, subject to the following conditions:+#+# The above copyright notice and this permission notice shall be included in+# all copies or substantial portions of the Software.+#+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.+#+# Except as contained in this notice, the name of the X Consortium shall not+# be used in advertising or otherwise to promote the sale, use or other deal-+# ings in this Software without prior written authorization from the X Consor-+# tium.+#+#+# FSF changes to this file are in the public domain.+#+# Calling this script install-sh is preferred over install.sh, to prevent+# `make' implicit rules from creating a file called install from it+# when there is no Makefile.+#+# This script is compatible with the BSD install script, but was written+# from scratch. It can only install one file at a time, a restriction+# shared with many OS's install programs.++# set DOITPROG to echo to test this script++# Don't use :- since 4.3BSD and earlier shells don't like it.+doit="${DOITPROG-}"++# put in absolute paths if you don't have them in your path; or use env. vars.++mvprog="${MVPROG-mv}"+cpprog="${CPPROG-cp}"+chmodprog="${CHMODPROG-chmod}"+chownprog="${CHOWNPROG-chown}"+chgrpprog="${CHGRPPROG-chgrp}"+stripprog="${STRIPPROG-strip}"+rmprog="${RMPROG-rm}"+mkdirprog="${MKDIRPROG-mkdir}"++transformbasename=+transform_arg=+instcmd="$mvprog"+chmodcmd="$chmodprog 0755"+chowncmd=+chgrpcmd=+stripcmd=+rmcmd="$rmprog -f"+mvcmd="$mvprog"+src=+dst=+dir_arg=++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.+In the second, create the directory path DIR.++Options:+-b=TRANSFORMBASENAME+-c copy source (using $cpprog) instead of moving (using $mvprog).+-d create directories instead of installing files.+-g GROUP $chgrp installed files to GROUP.+-m MODE $chmod installed files to MODE.+-o USER $chown installed files to USER.+-s strip installed files (using $stripprog).+-t=TRANSFORM+--help display this help and exit.+--version display version info and exit.++Environment variables override the default commands:+ CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG+"++while test -n "$1"; do+ case $1 in+ -b=*) transformbasename=`echo $1 | sed 's/-b=//'`+ shift+ continue;;++ -c) instcmd=$cpprog+ shift+ continue;;++ -d) dir_arg=true+ shift+ continue;;++ -g) chgrpcmd="$chgrpprog $2"+ shift+ shift+ continue;;++ --help) echo "$usage"; exit 0;;++ -m) chmodcmd="$chmodprog $2"+ shift+ shift+ continue;;++ -o) chowncmd="$chownprog $2"+ shift+ shift+ continue;;++ -s) stripcmd=$stripprog+ shift+ continue;;++ -t=*) transformarg=`echo $1 | sed 's/-t=//'`+ shift+ continue;;++ --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 $@.+ for arg+ do+ if test -n "$dstarg"; then+ # $@ is not empty: it contains at least $arg.+ set fnord "$@" "$dstarg"+ shift # fnord+ fi+ shift # arg+ 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@/@%@g' -e 's@^%@/@'`+ IFS=$oIFS++ pathcomp=++ while test $# -ne 0 ; do+ pathcomp=$pathcomp$1+ shift+ if test ! -d "$pathcomp"; then+ $mkdirprog "$pathcomp" || lasterr=$?+ # mkdir can fail with a `File exist' error in case several+ # install-sh are creating the directory concurrently. This+ # is OK.+ test ! -d "$pathcomp" && { (exit ${lasterr-1}); exit; }+ fi+ 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 rename the file to the real destination.+ { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \+ || {+ # The rename failed, perhaps because mv can't rename something else+ # to itself, or perhaps because mv is so ancient that it does not+ # support -f.++ # 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.+{+ (exit 0); exit+}++# Local variables:+# eval: (add-hook 'write-file-hooks 'time-stamp)+# time-stamp-start: "scriptversion="+# time-stamp-format: "%:y-%02m-%02d.%02H"+# time-stamp-end: "$"+# End: