]> err.no Git - sope/blob - mkinstalldirs
0eb69f89996faf9f4c053ca9dd4c4f59554f531e
[sope] / mkinstalldirs
1 #!/bin/sh
2 # Make directory hierarchy. 
3 # Written by Noah Friedman <friedman@prep.ai.mit.edu>
4 # Public domain.
5 # Modified by Adam Fedor, Nicola Pero
6
7 if test "$1" = "-c"; then
8   CHOWN_TO="$2"
9   shift 2
10 else
11   CHOWN_TO=""
12 fi
13
14 MKDIR="mkdir"
15
16 defaultIFS='    
17 '
18 IFS="${IFS-${defaultIFS}}"
19
20 errstatus=0
21
22 for file in ${1+"$@"} ; do 
23    oIFS="${IFS}"
24    # Some sh's can't handle IFS=/ for some reason.
25    IFS='%'
26    set - `echo ${file} | sed -e 's@/@%@g' -e 's@^%@/@'`
27    IFS="${oIFS}"
28
29    pathcomp=''
30
31    for d in ${1+"$@"} ; do
32      pathcomp="${pathcomp}${d}"
33
34      if test ! -d "${pathcomp}"; then
35         #echo "$MKDIR $pathcomp" 1>&2
36         if test ! -z "${CHOWN_TO}"; then
37           #echo "chown $CHOWN_TO $pathcomp" 1>&2
38           ($MKDIR "${pathcomp}" && chown $CHOWN_TO "${pathcomp}") || errstatus=$?
39         else
40           $MKDIR "${pathcomp}" || errstatus=$?
41         fi;
42      fi
43
44      pathcomp="${pathcomp}/"
45    done
46 done
47
48 exit $errstatus
49
50 # eof