#!/bin/bash
#
# search for invalid init.d and cron script names
#
TOPDIR=/usr/src/packages
test -d $BUILD_ROOT/.build.packages && TOPDIR=/.build.packages

export INVALID_FILE_FOUND=false

INITD_DATA=$BUILD_ROOT/usr/lib/build/checks-data/initd.txt
CRON_DATA=$BUILD_ROOT/usr/lib/build/checks-data/cron.txt

RPM="chroot $BUILD_ROOT env LC_ALL=C rpm --macros=/dev/null --nodigest --nosignature"

for rpm_package in $(find $BUILD_ROOT$TOPDIR/RPMS -type f -name "*.rpm" | LC_ALL=C sort) ; do
    RPM_NAME=$($RPM -qp --qf "%{NAME}" $rpm_package)
    $RPM -qpl --nofiledigest $rpm_package | sed -e "s@ @_@g" | while read LINE; do
      case "$LINE" in
          /etc/init.d/*)
	    SCRIPTNAME=`basename $LINE`
            case "$SCRIPTNAME" in
              suse*|\
              novell*)
              ;;
            *)
              if ! grep -q -E ^"$SCRIPTNAME " $INITD_DATA ; then
                 echo $($RPM -qp --qf "%{NAME}" $rpm_package): Name of init script \""$SCRIPTNAME"\" is not LSB conform
                 # INVALID_FILE_FOUND=true
              fi
	      ;;
              esac
          ;;

	  /etc/cron.d/*|\
	  /etc/cron.daily/*|\
	  /etc/cron.hourly/*|\
	  /etc/cron.monthly/*|\
	  /etc/cron.weekly/*)
	    SCRIPTNAME=`basename $LINE`
            case "$SCRIPTNAME" in
	      suse*|\
	      novell*)
	      ;;
	    *)
              if ! grep -q -E ^"$SCRIPTNAME\$" $CRON_DATA > /dev/null ; then
                 echo $($RPM -qp --qf "%{NAME}" $rpm_package): Name of cron script \""$SCRIPTNAME"\" is not LSB conform
                 # INVALID_FILE_FOUND=true
              fi
            ;;
            esac
          ;;

          *)
          ;;
        esac
    done
done

test $INVALID_FILE_FOUND = true && exit 1

exit 0
