diff options
author | Greg McGary <greg@mcgary.org> | 1997-04-18 06:34:43 +0000 |
---|---|---|
committer | Greg McGary <greg@mcgary.org> | 1997-04-18 06:34:43 +0000 |
commit | c37465dbcaf80dd07944f871bfb8c899c27e94f3 (patch) | |
tree | ba0b94024499402f5e7a36db0c6d717b7c766f18 /mkdirhier | |
parent | ab66bea0c326c2e18866ad37134dc91bf99c514a (diff) | |
download | idutils-c37465dbcaf80dd07944f871bfb8c899c27e94f3.tar.gz idutils-c37465dbcaf80dd07944f871bfb8c899c27e94f3.tar.bz2 idutils-c37465dbcaf80dd07944f871bfb8c899c27e94f3.zip |
imported from mkid-3.0.2r3_0_2
Diffstat (limited to 'mkdirhier')
-rwxr-xr-x | mkdirhier | 61 |
1 files changed, 61 insertions, 0 deletions
@@ -0,0 +1,61 @@ +#!/bin/sh +# $XConsortium: mkdirhier.sh,v 1.6 91/08/13 18:13:04 rws Exp $ +# Courtesy of Paul Eggert + +newline=' +' +IFS=$newline + +case ${1--} in +-*) echo >&2 "mkdirhier: usage: mkdirhier directory ..."; exit 1 +esac + +status= + +for directory +do + case $directory in + '') + echo >&2 "mkdirhier: empty directory name" + status=1 + continue;; + *"$newline"*) + echo >&2 "mkdirhier: directory name contains a newline: \`\`$directory''" + status=1 + continue;; + ///*) prefix=/;; # See Posix 2.3 "path". + //*) prefix=//;; + /*) prefix=/;; + -*) prefix=./;; + *) prefix= + esac + + IFS=/ + set x $directory + IFS=$newline + shift + + for filename + do + path=$prefix$filename + prefix=$path/ + shift + + test -d "$path" || { + paths=$path + for filename + do + if [ "$filename" != "." ]; then + path=$path/$filename + paths=$paths$newline$path + fi + done + + mkdir $paths || status=$? + + break + } + done + done + +exit $status |