source: trunk/debathena/scripts/mkinstalldirs @ 22720

Revision 22720, 3.4 KB checked in by ghudson, 14 years ago (diff)
Create an autoconfiscation transform step for Athena source trees before the orig archive is created. * debathena/scripts/mkinstalldirs, debathena/scripts/install-sh: Copies from automake 1.10 so that we aren't dependent on a specific version of automake. * debathena/scripts/aclocal.m4: The Athena aclocal.m4, resurrected from the attic. * debathena/scripts/daconfiscate: New script to copy in boilerplate and generate configure for Athena source directories. * debathena/scripts/dasource: Invoke daconfiscate for athena packages. Also, avoid creating conflicting orig archives by (1) leaving alone an existing orig archive and (2) searching the apt repositories for an orig archive before generating one.
  • Property svn:executable set to *
Line 
1#! /bin/sh
2# mkinstalldirs --- make directory hierarchy
3
4scriptversion=2006-05-11.19
5
6# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
7# Created: 1993-05-16
8# Public domain.
9#
10# This file is maintained in Automake, please report
11# bugs to <bug-automake@gnu.org> or send patches to
12# <automake-patches@gnu.org>.
13
14nl='
15'
16IFS=" ""        $nl"
17errstatus=0
18dirmode=
19
20usage="\
21Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
22
23Create each directory DIR (with mode MODE, if specified), including all
24leading file name components.
25
26Report bugs to <bug-automake@gnu.org>."
27
28# process command line arguments
29while test $# -gt 0 ; do
30  case $1 in
31    -h | --help | --h*)         # -h for help
32      echo "$usage"
33      exit $?
34      ;;
35    -m)                         # -m PERM arg
36      shift
37      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
38      dirmode=$1
39      shift
40      ;;
41    --version)
42      echo "$0 $scriptversion"
43      exit $?
44      ;;
45    --)                         # stop option processing
46      shift
47      break
48      ;;
49    -*)                         # unknown option
50      echo "$usage" 1>&2
51      exit 1
52      ;;
53    *)                          # first non-opt arg
54      break
55      ;;
56  esac
57done
58
59for file
60do
61  if test -d "$file"; then
62    shift
63  else
64    break
65  fi
66done
67
68case $# in
69  0) exit 0 ;;
70esac
71
72# Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
73# mkdir -p a/c at the same time, both will detect that a is missing,
74# one will create a, then the other will try to create a and die with
75# a "File exists" error.  This is a problem when calling mkinstalldirs
76# from a parallel make.  We use --version in the probe to restrict
77# ourselves to GNU mkdir, which is thread-safe.
78case $dirmode in
79  '')
80    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
81      echo "mkdir -p -- $*"
82      exec mkdir -p -- "$@"
83    else
84      # On NextStep and OpenStep, the `mkdir' command does not
85      # recognize any option.  It will interpret all options as
86      # directories to create, and then abort because `.' already
87      # exists.
88      test -d ./-p && rmdir ./-p
89      test -d ./--version && rmdir ./--version
90    fi
91    ;;
92  *)
93    if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
94       test ! -d ./--version; then
95      echo "mkdir -m $dirmode -p -- $*"
96      exec mkdir -m "$dirmode" -p -- "$@"
97    else
98      # Clean up after NextStep and OpenStep mkdir.
99      for d in ./-m ./-p ./--version "./$dirmode";
100      do
101        test -d $d && rmdir $d
102      done
103    fi
104    ;;
105esac
106
107for file
108do
109  case $file in
110    /*) pathcomp=/ ;;
111    *)  pathcomp= ;;
112  esac
113  oIFS=$IFS
114  IFS=/
115  set fnord $file
116  shift
117  IFS=$oIFS
118
119  for d
120  do
121    test "x$d" = x && continue
122
123    pathcomp=$pathcomp$d
124    case $pathcomp in
125      -*) pathcomp=./$pathcomp ;;
126    esac
127
128    if test ! -d "$pathcomp"; then
129      echo "mkdir $pathcomp"
130
131      mkdir "$pathcomp" || lasterr=$?
132
133      if test ! -d "$pathcomp"; then
134        errstatus=$lasterr
135      else
136        if test ! -z "$dirmode"; then
137          echo "chmod $dirmode $pathcomp"
138          lasterr=
139          chmod "$dirmode" "$pathcomp" || lasterr=$?
140
141          if test ! -z "$lasterr"; then
142            errstatus=$lasterr
143          fi
144        fi
145      fi
146    fi
147
148    pathcomp=$pathcomp/
149  done
150done
151
152exit $errstatus
153
154# Local Variables:
155# mode: shell-script
156# sh-indentation: 2
157# eval: (add-hook 'write-file-hooks 'time-stamp)
158# time-stamp-start: "scriptversion="
159# time-stamp-format: "%:y-%02m-%02d.%02H"
160# time-stamp-end: "$"
161# End:
Note: See TracBrowser for help on using the repository browser.