rlm@1: #!/bin/bash
rlm@1: # Copyright (c) 2000,2004 Matthias S. Benkmann <article AT winterdrache DOT de>
rlm@1: # You may do everything with this code except misrepresent its origin.
rlm@1: # PROVIDED `AS IS' WITH ABSOLUTELY NO WARRANTY OF ANY KIND!
rlm@1: 
rlm@1: manpagesowner=man-pages
rlm@1: localedir=/usr/share/locale
rlm@1: cmdline="$@"
rlm@1: 
rlm@1: DAISY_CHAIN=""
rlm@1: 
rlm@1: for p in $(type -ap install) ; do
rlm@1:   if [ ! $p -ef $0 ]; then DAISY_CHAIN=$p ; break ; fi
rlm@1: done
rlm@1: 
rlm@1: if [ ! -n "$DAISY_CHAIN" ]; then
rlm@1:   echo Cannot find real ${0##*/} command 
rlm@1:   exit 1
rlm@1: fi
rlm@1: 
rlm@1: if [ $UID == 0 ]; then
rlm@1:   exec $DAISY_CHAIN "$@"
rlm@1: fi
rlm@1: 
rlm@1: #kill unused -c parameter if we get it
rlm@1: if [ z"$1" = z"-c" ]; then shift 1 ; fi
rlm@1: 
rlm@1: 	#********** test if we create directories ********************
rlm@1: if [ \( z"$1" = z"-d" \) -o \( z"$1" = z"-m" -a z"$3" = z"-d" \) ]; then  
rlm@1:   locdirs=""
rlm@1:   notify=0
rlm@1:   havedir=0
rlm@1:   for((i=$#; $i>0; ))
rlm@1:   do
rlm@1:     a="$1"
rlm@1:     shift 1; i=$(($i-1))
rlm@1:     case "$a" in
rlm@1:       -o|-g|--owner|--group) notify=1 
rlm@1:       			shift 1; i=$(($i-1))
rlm@1:           		set -- "$@" 
rlm@1:           ;;
rlm@1:       $localedir/*) if [ ! -d "$a" ]; then
rlm@1:       		      locdirs="$locdirs ""`expr $a : "$localedir/\(.*\)"`" 
rlm@1:                       set -- "$@" "$a"
rlm@1:                       havedir=1
rlm@1:                     else
rlm@1:                       notify=1
rlm@1:                       set -- "$@"
rlm@1:                     fi  
rlm@1:                    ;;
rlm@1:       */*|/sbin) if [ ! -d "$a" ]; then 
rlm@1:       	     set -- "$@" "$a" 
rlm@1:       	     havedir=1
rlm@1:       	   else
rlm@1:       	     notify=1
rlm@1:       	     set -- "$@"
rlm@1:       	   fi             
rlm@1:       	   ;;
rlm@1:       *) set -- "$@" "$a" ;;
rlm@1:     esac
rlm@1:   done
rlm@1:   
rlm@1:   test $notify -eq 1 -o z"$locdirs" != z && \
rlm@1:   					echo 1>&2 '***' install "$cmdline"
rlm@1: 
rlm@1:   test $havedir -eq 0 && exit 0
rlm@1: 
rlm@1:   $DAISY_CHAIN "$@" || exit $?
rlm@1:   
rlm@1:   test z"$locdirs" != z &&
rlm@1:   for dir in $locdirs ; do
rlm@1:     cumuldir=""
rlm@1:     for d in `echo $locdirs | sed 's#/# #g' -` ; do
rlm@1:       cumuldir=$cumuldir$d/
rlm@1:       if [ -d $localedir/$cumuldir ]; then
rlm@1:         chgrp install $localedir/$cumuldir
rlm@1:         chmod g+w,o+t $localedir/$cumuldir
rlm@1:       fi  
rlm@1:     done  
rlm@1:   done
rlm@1: 
rlm@1: else  #if "$1" != "-d"  ,i.e. we do not create directories *****************
rlm@1:   notify=0
rlm@1:   for((i=$# ; $i>0; ))
rlm@1:   do
rlm@1:     a="$1"
rlm@1:     shift 1; i=$(($i-1))
rlm@1:     case "$a" in
rlm@1:      -m)      set -- "$@" "$a" 
rlm@1:               a="$1"
rlm@1:               shift 1; i=$(($i-1))
rlm@1:               case "$a" in
rlm@1:                 4755) notify=1 ; set -- "$@" "755" ;;
rlm@1:                 4775) notify=1 ; set -- "$@" "755" ;;
rlm@1:                 4711) notify=1 ; set -- "$@" "711" ;;
rlm@1:                 *) set -- "$@" "$a"  ;;
rlm@1:               esac
rlm@1:           ;;
rlm@1:       -m4755) notify=1 ; set -- "$@" "-m755" ;;
rlm@1:       -m4775) notify=1 ; set -- "$@" "-m755" ;;
rlm@1:       -m4711) notify=1 ; set -- "$@" "-m711" ;;
rlm@1:       -o|-g|--owner|--group)    notify=1 
rlm@1:       		shift 1; i=$(($i-1))
rlm@1:           	set -- "$@" 
rlm@1:           ;;
rlm@1:       */man/man?/*) 
rlm@1:                 if [ -e "$a" -a ! -O "$a" ]; then
rlm@1:                   if [ `find "$a" -printf \%u` = $manpagesowner ]; then
rlm@1:                     notify=1
rlm@1:                     set -- "$@" not_installed
rlm@1:                   else
rlm@1:                     set -- "$@" "$a"
rlm@1:                   fi  
rlm@1:                 else
rlm@1:                   set -- "$@" "$a"
rlm@1:                 fi
rlm@1:           ;;    
rlm@1:       *) set -- "$@" "$a" ;;
rlm@1:     esac
rlm@1:   done
rlm@1: 
rlm@1:   test $notify -eq 1 && echo 1>&2 '***' install "$cmdline"
rlm@1: 
rlm@1:   $DAISY_CHAIN "$@" || exit $?
rlm@1: fi
rlm@1: 
rlm@1: exit 0