forked from mozart/mozart
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmkinstalldirs
executable file
·53 lines (42 loc) · 1.16 KB
/
mkinstalldirs
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
#!/bin/sh
# Make directory hierarchy.
# Written by Noah Friedman <[email protected]>
# Added chgrp command by Benjamin Lorenz <[email protected]>
# Public domain.
# INSTALL_DIR_CHMOD=775 to also give write permission to group members
# INSTALL_DIR_CHMOD= to only get default (from umask)
: ${INSTALL_DIR_CHMOD=775}
if test -z "$INSTALL_DIR_CHMOD"; then
dochmod(){ true; }
else
dochmod() {
if test -z "$INSTALL_DIR_GROUP"; then true; else
echo "chgrp $INSTALL_DIR_GROUP $1" 1>&2;
chgrp $INSTALL_DIR_GROUP $1 || errstatus=$?;
fi
echo "chmod $INSTALL_DIR_CHMOD $1" 1>&2;
chmod $INSTALL_DIR_CHMOD $1 || errstatus=$?; }
fi
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
errstatus=0
for file in ${1+"$@"} ; do
oIFS="${IFS}"
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo ${file} | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS="${oIFS}"
pathcomp=''
for d in ${1+"$@"} ; do
pathcomp="${pathcomp}${d}"
if test ! -d "${pathcomp}"; then
echo "mkdir $pathcomp" 1>&2
mkdir "${pathcomp}" || test -d "${pathcomp}" || errstatus=$?
dochmod "${pathcomp}"
fi
pathcomp="${pathcomp}/"
done
done
exit $errstatus
# eof