e575adc1a1ff97f302b8f2e4faf175949708b45d
[pkgusr] / usr / lib / pkgusr / mkdir
1 #!/bin/bash
2 # Copyright (c) 2000 Matthias S. Benkmann <article AT winterdrache DOT de>
3 # You may do everything with this code except misrepresent its origin.
4 # PROVIDED `AS IS' WITH ABSOLUTELY NO WARRANTY OF ANY KIND!
5
6 watchdir=/usr/share/locale
7
8 DAISY_CHAIN=""
9
10 for p in $(type -ap mkdir) ; do
11     if [ ! $p -ef $0 ]; then
12         DAISY_CHAIN=$p
13         break
14     fi
15 done
16
17 if [ ! -n "$DAISY_CHAIN" ]; then
18     echo Cannot find real ${0##*/} command 
19     exit 1
20 fi
21
22 if [ $UID == 0 ]; then
23     exec $DAISY_CHAIN "$@"
24 fi
25
26 cmdline="$@"
27
28 dirs=""
29 for((i=$#; $i>0;))
30 do
31     a="$1"
32     shift 1; i=$(($i-1))
33     case "$a" in
34         $watchdir/*)
35             dirs="$dirs ""$(expr $a : "$watchdir/\(.*\)")" 
36             set -- "$@" "$a" 
37             ;;
38         *) set -- "$@" "$a" ;;
39     esac
40 done
41
42 $DAISY_CHAIN "$@" || exit $?
43
44 test z"$dirs" != z &&
45 echo 1>&2 '***' mkdir "$cmdline"
46 for dir in $dirs ; do
47     cumuldir=""
48     for d in $(echo $dirs | sed 's#/# #g' -) ; do
49         cumuldir=$cumuldir$d/
50         chgrp install $watchdir/$cumuldir
51         test -k $watchdir/$cumuldir || chmod g+w,o+t $watchdir/$cumuldir
52     done  
53 done
54 exit 0