File: mkdir-sh

package info (click to toggle)
star 1.5a67-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 5,600 kB
  • ctags: 4,715
  • sloc: ansic: 37,601; sh: 3,198; makefile: 200
file content (51 lines) | stat: -rwxr-xr-x 997 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/sh
#
# Replacement for mkdir -p ... functionality.
#
# BSD-4.3, NeXT Step <= 3.x and similar don't accept the -p flag
#
# @(#)mkdir-sh	1.2 98/12/14 Copyright 1998 J. Schilling
#
# Copyright J�rg Schilling. All rights reserved.
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only.
# See the file CDDL.Schily.txt in this distribution or
# http://opensource.org/licenses/cddl1.php for details.

if [ $# -lt 1 ]; then
	echo "Usage: mkdir-sh [-p] dir ...."
	exit 1
fi

dop=false
case $1 in
-p)
	dop=true
	shift
	;;
esac

if [ $dop = false ]; then
	for i in "$@"; do
		mkdir "$i"
	done
else
	for i in "$@"; do
		if [ -d "$i" ]; then
			continue
		fi
		# Don't use ${i:-.}, BSD4.3 doen't like it
		#
		fullname="$i"
		if [ ."$i" = . ]; then
			fullname=.
		fi
		dirname=`expr \
			"$fullname/" : '\(/\)/*[^/]*//*$'  \| \
			"$fullname/" : '\(.*[^/]\)//*[^/][^/]*//*$' \| \
			.`
		sh $0 -p "$dirname"
		mkdir "$i"
	done
fi