mkdirhier revision bb2e14f3
1#!/bin/sh 2# $Xorg: mkdirhier.sh,v 1.3 2000/08/17 19:41:53 cpqbld Exp $ 3# Courtesy of Paul Eggert 4 5newline=' 6' 7IFS=$newline 8 9case ${1--} in 10-*) echo >&2 "mkdirhier: usage: mkdirhier directory ..."; exit 1 11esac 12 13status= 14 15for directory 16do 17 case $directory in 18 '') 19 echo >&2 "mkdirhier: empty directory name" 20 status=1 21 continue;; 22 *"$newline"*) 23 echo >&2 "mkdirhier: directory name contains a newline: \`\`$directory''" 24 status=1 25 continue;; 26 ///*) prefix=/;; # See Posix 2.3 "path". 27 //*) prefix=//;; 28 /*) prefix=/;; 29 -*) prefix=./;; 30 *) prefix= 31 esac 32 33 IFS=/ 34 set x $directory 35 case $2 in 36 */*) # IFS parsing is broken 37 IFS=' ' 38 set x `echo $directory | tr / ' '` 39 ;; 40 esac 41 IFS=$newline 42 shift 43 44 for filename 45 do 46 path=$prefix$filename 47 prefix=$path/ 48 shift 49 50 test -d "$path" || { 51 paths=$path 52 for filename 53 do 54 if [ -n "$filename" -a "$filename" != "." ]; then 55 path=$path/$filename 56 paths=$paths$newline$path 57 fi 58 done 59 60 mkdir $paths || status=$? 61 62 break 63 } 64 done 65 done 66 67exit $status 68