summaryrefslogtreecommitdiff
path: root/makedir
blob: ab760230ba0f909c3230b8a07e6bd43b6984f092 (plain)
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
52
53
54
55
56
57
58
#!/bin/sh
# $Header: makedir.SH,v 1.0 87/12/18 13:05:32 root Exp $
# 
# $Log:	makedir.SH,v $
# Revision 1.0  87/12/18  13:05:32  root
# Initial revision
# 
# Revision 4.3.1.1  85/05/10  11:35:14  lwall
# Branch for patches.
# 
# Revision 4.3  85/05/01  11:42:31  lwall
# Baseline for release with 4.3bsd.
# 

export PATH || (echo "OOPS, this isn't sh.  Desperation time.  I will feed myself to sh."; sh $0; kill $$)

case $# in
  0)
    /bin/echo "makedir pathname filenameflag"
    exit 1
    ;;
esac

: guarantee one slash before 1st component
case $1 in
  /*) ;;
  *)  set ./$1 $2 ;;
esac

: strip last component if it is to be a filename
case X$2 in
  X1) set `/bin/echo $1 | /bin/sed 's:\(.*\)/[^/]*$:\1:'` ;;
  *)  set $1 ;;
esac

: return reasonable status if nothing to be created
if test -d "$1" ; then
    exit 0
fi

list=''
while true ; do
    case $1 in
    */*)
	list="$1 $list"
	set `echo $1 | /bin/sed 's:\(.*\)/:\1 :'`
	;;
    *)
	break
	;;
    esac
done

set $list

for dir do
    /bin/mkdir $dir >/dev/null 2>&1
done