summaryrefslogtreecommitdiff
path: root/source4/lib/json/mkinstalldirs
diff options
context:
space:
mode:
authorDerrell Lipman <derrell@samba.org>2006-09-23 19:15:27 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:20:15 -0500
commit4d1a4e8e7ce047f70113d9fa52f7961c0fee6557 (patch)
treebd1bce916dba4c725700af4a8a2a790c7b0c2ccb /source4/lib/json/mkinstalldirs
parent333557e28fc1c1934756b96f08711e050568926f (diff)
downloadsamba-4d1a4e8e7ce047f70113d9fa52f7961c0fee6557.tar.gz
samba-4d1a4e8e7ce047f70113d9fa52f7961c0fee6557.tar.bz2
samba-4d1a4e8e7ce047f70113d9fa52f7961c0fee6557.zip
r18848: Save the json library before I start hacking on it. I'm going to be
converting it to natively use ejs objects, instead of its own internal format. (This used to be commit 119db8924a6e9c40a94c76c57198877875c53afc)
Diffstat (limited to 'source4/lib/json/mkinstalldirs')
-rwxr-xr-xsource4/lib/json/mkinstalldirs99
1 files changed, 99 insertions, 0 deletions
diff --git a/source4/lib/json/mkinstalldirs b/source4/lib/json/mkinstalldirs
new file mode 100755
index 0000000000..8ab885ec92
--- /dev/null
+++ b/source4/lib/json/mkinstalldirs
@@ -0,0 +1,99 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+errstatus=0
+dirmode=""
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
+
+# process command line arguments
+while test $# -gt 0 ; do
+ case "${1}" in
+ -h | --help | --h* ) # -h for help
+ echo "${usage}" 1>&2; exit 0 ;;
+ -m ) # -m PERM arg
+ shift
+ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+ dirmode="${1}"
+ shift ;;
+ -- ) shift; break ;; # stop option processing
+ -* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option
+ * ) break ;; # first non-opt arg
+ esac
+done
+
+for file
+do
+ if test -d "$file"; then
+ shift
+ else
+ break
+ fi
+done
+
+case $# in
+0) exit 0 ;;
+esac
+
+case $dirmode in
+'')
+ if mkdir -p -- . 2>/dev/null; then
+ echo "mkdir -p -- $*"
+ exec mkdir -p -- "$@"
+ fi ;;
+*)
+ if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
+ echo "mkdir -m $dirmode -p -- $*"
+ exec mkdir -m "$dirmode" -p -- "$@"
+ fi ;;
+esac
+
+for file
+do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d
+ do
+ pathcomp="$pathcomp$d"
+ case "$pathcomp" in
+ -* ) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ else
+ if test ! -z "$dirmode"; then
+ echo "chmod $dirmode $pathcomp"
+
+ lasterr=""
+ chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+ if test ! -z "$lasterr"; then
+ errstatus=$lasterr
+ fi
+ fi
+ fi
+ fi
+
+ pathcomp="$pathcomp/"
+ done
+done
+
+exit $errstatus
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 3
+# End:
+# mkinstalldirs ends here