diff options
Diffstat (limited to 'utils/mkdirhier')
-rw-r--r-- | utils/mkdirhier/Makefile | 11 | ||||
-rw-r--r-- | utils/mkdirhier/mkdirhier.sh | 34 |
2 files changed, 45 insertions, 0 deletions
diff --git a/utils/mkdirhier/Makefile b/utils/mkdirhier/Makefile new file mode 100644 index 0000000000..f698112dbb --- /dev/null +++ b/utils/mkdirhier/Makefile @@ -0,0 +1,11 @@ +TOP=../.. +include $(TOP)/mk/boilerplate.mk + +boot :: all + +SCRIPT_PROG=mkdirhier +SCRIPT_OBJS=mkdirhier.sh +INTERP=$(SHELL) +CLEAN_FILES += $(SCRIPT_PROG) + +include $(TOP)/mk/target.mk diff --git a/utils/mkdirhier/mkdirhier.sh b/utils/mkdirhier/mkdirhier.sh new file mode 100644 index 0000000000..3ae24b3c6e --- /dev/null +++ b/utils/mkdirhier/mkdirhier.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +# +# create a hierarchy of directories +# +# Based on Noah Friedman's mkinstalldirs.. +# +errs=0 + +for f in $*; do + parts=`echo ":$f" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + path=""; + for p in $parts; do + 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 |