Code

po: updated russian translation
[ncmpc.git] / mkinstalldirs
1 #! /bin/sh
2 # mkinstalldirs --- make directory hierarchy
3 # Author: Noah Friedman <friedman@prep.ai.mit.edu>
4 # Created: 1993-05-16
5 # Public domain
7 errstatus=0
8 dirmode=""
10 usage="\
11 Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
13 # process command line arguments
14 while test $# -gt 0 ; do
15    case "${1}" in
16      -h | --help | --h* )     # -h for help
17   echo "${usage}" 1>&2; exit 0 ;;
18      -m )         # -m PERM arg
19   shift
20   test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
21   dirmode="${1}"
22   shift ;;
23      -- ) shift; break ;;     # stop option processing
24      -* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option
25      * )  break ;;        # first non-opt arg
26    esac
27 done
29 for file
30 do
31   if test -d "$file"; then
32     shift
33   else
34     break
35   fi
36 done
38 case $# in
39 0) exit 0 ;;
40 esac
42 case $dirmode in
43 '')
44   if mkdir -p -- . 2>/dev/null; then
45     echo "mkdir -p -- $*"
46     exec mkdir -p -- "$@"
47   fi ;;
48 *)
49   if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
50     echo "mkdir -m $dirmode -p -- $*"
51     exec mkdir -m "$dirmode" -p -- "$@"
52   fi ;;
53 esac
55 for file
56 do
57    set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
58    shift
60    pathcomp=
61    for d
62    do
63      pathcomp="$pathcomp$d"
64      case "$pathcomp" in
65        -* ) pathcomp=./$pathcomp ;;
66      esac
68      if test ! -d "$pathcomp"; then
69   echo "mkdir $pathcomp"
71   mkdir "$pathcomp" || lasterr=$?
73   if test ! -d "$pathcomp"; then
74     errstatus=$lasterr
75   else
76     if test ! -z "$dirmode"; then
77        echo "chmod $dirmode $pathcomp"
79        lasterr=""
80        chmod "$dirmode" "$pathcomp" || lasterr=$?
82        if test ! -z "$lasterr"; then
83          errstatus=$lasterr
84        fi
85     fi
86   fi
87      fi
89      pathcomp="$pathcomp/"
90    done
91 done
93 exit $errstatus
95 # Local Variables:
96 # mode: shell-script
97 # sh-indentation: 3
98 # End:
99 # mkinstalldirs ends here