pkgsrc/bootstrap/files/mkdir-sh
heinz 718ce4cb08 Add script to work around stupid 'mkdir -p' on Unixware.
$ mkdir -p /tmp/foo ; echo $?
  0
  $ mkdir -p /tmp/foo ; echo $?
  2
mkdir-sh calls 'mkdir' except when the target directory already exists.
2004-04-12 14:48:58 +00:00

44 lines
731 B
Bash
Executable file

#! /bin/sh
# $NetBSD: mkdir-sh,v 1.1 2004/04/12 14:48:58 heinz Exp $
#
# workaround for the broken "mkdir -p" on Unixware
MKDIRCMD=mkdir
cmdargs="$@"
# variable 'options' is unused
for options in p m; do
if [ $# -lt 1 ]; then
${MKDIRCMD} ${cmdargs}
exit $?
fi
case $1 in
-p) pathopt=-p;
shift;;
-m) modeopt="-m ${2}"
shift;
if [ $# -ne 0 ] ; then
shift
else
${MKDIRCMD} ${cmdargs}
exit $?
fi
;;
esac
done
if [ $# -gt 0 ]; then
while [ $# -gt 0 ]; do
if [ -z "${pathopt}" ]; then
${MKDIRCMD} ${modeopt} -- "$1"
elif [ ! -d $1 ] ; then
${MKDIRCMD} ${pathopt} ${modeopt} -- "$1"
else
: # directory exists, nothing to do
fi
shift
done
else
${MKDIRCMD} ${cmdargs}
fi