#!/bin/sh # # Copyright (c) 1999,2000 WU-FTPD Development Group. # All rights reserved. # # Portions Copyright (c) 1980, 1985, 1988, 1989, 1990, 1991, 1993, 1994 # The Regents of the University of California. # Portions Copyright (c) 1993, 1994 Washington University in Saint Louis. # Portions Copyright (c) 1989 Massachusetts Institute of Technology. # Portions Copyright (c) 1998 Sendmail, Inc. # Portions Copyright (c) 1983, 1995, 1996, 1997 Eric P. Allman. # Portions Copyright (c) 1996, 1998 Berkeley Software Design, Inc. # Portions Copyright (C) 1991, 1992, 1993, 1994, 1995 1996, 1997 # Free Software Foundation, Inc. # Portions Copyright (c) 1997 Stan Barber. # Portions Copyright (c) 1997 Kent Landfield. # # Use and distribution of this software and its source code are governed by # the terms and conditions of the WU-FTPD Software License ("LICENSE"). # # If you did not receive a copy of the license, it may be obtained online at # http://www.wu-ftpd.org/license.html. # # $Id: mkdirhier,v 1.5 2000/07/01 18:42:38 wuftpd Exp $ # 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 case $2 in */*) # IFS parsing is broken IFS=' ' set x `echo $directory | tr / ' '` ;; esac 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