summaryrefslogtreecommitdiff
path: root/makedir
blob: 250bdd5fb05ed893028dd878d5aa01004e37801f (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
# $RCSfile: makedir.SH,v 3314Revision: 4.1 3314Date: 92/08/07 18:24:23 $
# 
# $Log:	makedir.SH,v $
# Revision 4.1  92/08/07  18:24:23  lwall
# 
# Revision 4.0.1.1  92/06/08  14:24:55  lwall
# patch20: SH files didn't work well with symbolic links
# 
# Revision 4.0  91/03/20  01:27:13  lwall
# 4.0 baseline.
# 
# 

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