X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=glafp-utils%2Fmkdirhier%2Fmkdirhier.sh;h=3ae24b3c6eb111be73ec55d433f9f38ab5fef2c1;hb=49bff3215bf3fe9ada24dac2cf80f97db4e597dd;hp=739535e1189b000b73def2073c5daed05ac687d1;hpb=02b60157852c1bf3c371b47c33d83814a05153bc;p=ghc-hetmet.git diff --git a/glafp-utils/mkdirhier/mkdirhier.sh b/glafp-utils/mkdirhier/mkdirhier.sh index 739535e..3ae24b3 100644 --- a/glafp-utils/mkdirhier/mkdirhier.sh +++ b/glafp-utils/mkdirhier/mkdirhier.sh @@ -1,24 +1,34 @@ #!/bin/sh # -# create a heirarchy of directories +# create a hierarchy of directories # +# Based on Noah Friedman's mkinstalldirs.. +# +errs=0 for f in $*; do - parts=`echo $f | sed 's,\(.\)/\(.\),\1 \2,g' | sed 's,/$,,'`; + parts=`echo ":$f" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` path=""; for p in $parts; do - if [ x"$path" = x ]; then - dir=$p; - else - dir=$path/$p; - fi; - if [ ! -d $dir ]; then - echo mkdir $dir; - mkdir $dir; - chmod a+rx $dir; - fi; - path=$dir; + path="$path$p" + case "$path" in + -* ) path=./$path ;; + esac + + if test ! -d "$path"; then + echo "mkdir $path" 1>&2 + + mkdir "$path" || lasterr=$? + + if test ! -d "$path"; then + errs=$lasterr + fi + fi + path="$path/"; done; done +exit $errs + +# end of story