#!/bin/sh # mkinstalldirs --- make directory hierarchy (portable `mkdir -p') # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.11 2005/05/31 01:47:02 friedman Exp $ errstat=0 nl=' ' for arg do qdir= dir= qsub= sub=// # "//" can't appear normally case $arg in ./* | ../* | /* ) : ;; * ) arg=./$arg ;; esac echo "$arg" \ | sed -n -e 's=///*=/=g;H;${g;s=#=:#:=g;s=/=###=g;:l' \ -e 's=^\(\n\)\(.*\)###=\1\2\1/\1=;t l' \ -e 's=:#:=#=g;s=^\n==p;}' \ | { read l; readstat=$? while :; do case $readstat:$l in 0:/ | [-1-9]*:* ) dir=$dir$sub qdir=$qdir$qsub if [ -n "$dir" ] && ! [ -d "$dir" ]; then echo mkdir "$qdir" mkdir "$dir" || lasterr=$? test -d "$dir" || { errstat=$lasterr; break; } fi test $readstat -ne 0 && break qdir=$qdir/ dir=$dir/ qsub= sub=// ;; * ) case $sub in // ) sub=$l qsub=$l ;; * ) sub=$sub$nl$l qsub=$qsub'\n'$l ;; esac ;; esac read l; readstat=$? done } done exit $errstat # mkinstalldirs ends here