source: mkinstalldirs @ fe3b61b

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decaygc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newstringwith_gc
Last change on this file since fe3b61b was 51b7345, checked in by Peter A. Buhr <pabuhr@…>, 10 years ago

initial commit

  • Property mode set to 100755
File size: 1.8 KB
Line 
1#! /bin/sh
2# mkinstalldirs --- make directory hierarchy
3# Author: Noah Friedman <friedman@prep.ai.mit.edu>
4# Created: 1993-05-16
5# Public domain
6
7errstatus=0
8dirmode=""
9
10usage="\
11Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
12
13# process command line arguments
14while test $# -gt 0 ; do
15   case "${1}" in
16     -h | --help | --h* )                       # -h for help
17        echo "${usage}" 1>&2; exit 0 ;;
18     -m )                                       # -m PERM arg
19        shift
20        test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
21        dirmode="${1}"
22        shift ;;
23     -- ) shift; break ;;                       # stop option processing
24     -* ) echo "${usage}" 1>&2; exit 1 ;;       # unknown option
25     * )  break ;;                              # first non-opt arg
26   esac
27done
28
29for file
30do
31  if test -d "$file"; then
32    shift
33  else
34    break
35  fi
36done
37
38case $# in
390) exit 0 ;;
40esac
41
42case $dirmode in
43'')
44  if mkdir -p -- . 2>/dev/null; then
45    echo "mkdir -p -- $*"
46    exec mkdir -p -- "$@"
47  fi ;;
48*)
49  if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
50    echo "mkdir -m $dirmode -p -- $*"
51    exec mkdir -m "$dirmode" -p -- "$@"
52  fi ;;
53esac
54
55for file
56do
57   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
58   shift
59
60   pathcomp=
61   for d
62   do
63     pathcomp="$pathcomp$d"
64     case "$pathcomp" in
65       -* ) pathcomp=./$pathcomp ;;
66     esac
67
68     if test ! -d "$pathcomp"; then
69        echo "mkdir $pathcomp"
70
71        mkdir "$pathcomp" || lasterr=$?
72
73        if test ! -d "$pathcomp"; then
74          errstatus=$lasterr
75        else
76          if test ! -z "$dirmode"; then
77             echo "chmod $dirmode $pathcomp"
78
79             lasterr=""
80             chmod "$dirmode" "$pathcomp" || lasterr=$?
81
82             if test ! -z "$lasterr"; then
83               errstatus=$lasterr
84             fi
85          fi
86        fi
87     fi
88
89     pathcomp="$pathcomp/"
90   done
91done
92
93exit $errstatus
94
95# Local Variables:
96# mode: shell-script
97# sh-indentation: 3
98# End:
99# mkinstalldirs ends here
Note: See TracBrowser for help on using the repository browser.