diff options
author | Derrell Lipman <derrell@samba.org> | 2006-09-23 19:15:27 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:20:15 -0500 |
commit | 4d1a4e8e7ce047f70113d9fa52f7961c0fee6557 (patch) | |
tree | bd1bce916dba4c725700af4a8a2a790c7b0c2ccb /source4/lib/json/mkinstalldirs | |
parent | 333557e28fc1c1934756b96f08711e050568926f (diff) | |
download | samba-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-x | source4/lib/json/mkinstalldirs | 99 |
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 |