aboutsummaryrefslogtreecommitdiffstats
path: root/bs/mkdir_p.sh
blob: cb9e94ca7dcc01dd9b1bfbc00483a0549c7019d5 (plain) (blame)
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
#!/bin/sh
# based on mkinstalldirs:
#	Original author: Noah Friedman <friedman@prep.ai.mit.edu>
#	Created: 1993-05-16
#	Public domain.
errstatus=0
for file
do
	test -d "$file" && continue
	case $file in
	/*) pathcomp=/ ;;
	*)  pathcomp= ;;
	esac
	oIFS=$IFS
	IFS=/
	set fnord $file
	shift
	IFS=$oIFS
	for d
	do
		test "x$d" = x && continue
		pathcomp=$pathcomp$d
		case $pathcomp in
		-*) pathcomp=./$pathcomp ;;
		esac

		if test ! -d "$pathcomp"; then
			mkdir "$pathcomp" || lasterr=$?
			if test ! -d "$pathcomp"; then
				errstatus=$lasterr
			fi
		fi
		pathcomp=$pathcomp/
	done
done

exit $errstatus