mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-22 05:40:48 +00:00
but the test for mkdir -p was itself a generator of major race conditions (and wrote on the filesystem etc) - also don't echo what we do git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@14649 72102866-910b-0410-8b05-ffd578937521
50 lines
928 B
Bash
Executable file
50 lines
928 B
Bash
Executable file
#!/bin/sh
|
|
# Make directory hierarchy.
|
|
# Written by Noah Friedman <friedman@prep.ai.mit.edu>
|
|
# Public domain.
|
|
# Modified by Adam Fedor, Nicola Pero
|
|
|
|
if test "$1" = "-c"; then
|
|
CHOWN_TO="$2"
|
|
shift 2
|
|
else
|
|
CHOWN_TO=""
|
|
fi
|
|
|
|
MKDIR="mkdir"
|
|
|
|
defaultIFS='
|
|
'
|
|
IFS="${IFS-${defaultIFS}}"
|
|
|
|
errstatus=0
|
|
|
|
for file in ${1+"$@"} ; do
|
|
oIFS="${IFS}"
|
|
# Some sh's can't handle IFS=/ for some reason.
|
|
IFS='%'
|
|
set - `echo ${file} | sed -e 's@/@%@g' -e 's@^%@/@'`
|
|
IFS="${oIFS}"
|
|
|
|
pathcomp=''
|
|
|
|
for d in ${1+"$@"} ; do
|
|
pathcomp="${pathcomp}${d}"
|
|
|
|
if test ! -d "${pathcomp}"; then
|
|
#echo "$MKDIR $pathcomp" 1>&2
|
|
if test ! -z "${CHOWN_TO}"; then
|
|
#echo "chown $CHOWN_TO $pathcomp" 1>&2
|
|
($MKDIR "${pathcomp}" && chown $CHOWN_TO "${pathcomp}") || errstatus=$?
|
|
else
|
|
$MKDIR "${pathcomp}" || errstatus=$?
|
|
fi;
|
|
fi
|
|
|
|
pathcomp="${pathcomp}/"
|
|
done
|
|
done
|
|
|
|
exit $errstatus
|
|
|
|
# eof
|