#!/bin/sh
#
# Compress documentation files found in $DOCDIR. Omit some files we don't
# want to get compressed.
#
# $RPM_BUILD_DIR/__rpm_noautocompressdoc can contain whitespace delimated
# list of patters to ommit.
#

#set -x

COMPRESS_CMD="gzip -9nf"
EXCLUDE_SUFFIXES="htm html jpg jpeg png gif pdf css js dia"
EXCLUDE_MASKS=
RECOMPRESS_BZIP2=yes

if test -f $RPM_BUILD_DIR/__rpm_noautocompressdoc ; then
	EXCLUDE_MASKS=$(cat $RPM_BUILD_DIR/__rpm_noautocompressdoc | \
			xargs echo | sed -e 's/^ *//; s/ *$//; s/ \+/|/g')
fi

if [ "$DOCDIR" = "" ] ; then
	echo '$DOCDIR not set; exiting.'
	exit 1
fi

cd $DOCDIR

echo "Compressing documentation in $DOCDIR..."

if test "$EXCLUDE_MASKS" ; then
	echo "Excluding pattern '$EXCLUDE_MASKS'"
fi

FIND_CMD="find . -type f "
for SUF in $EXCLUDE_SUFFIXES ; do
	FIND_CMD="$FIND_CMD -a -not -name '*.$SUF'"
done

eval $FIND_CMD | while read FILENAME ; do
	if test -n "$EXCLUDE_MASKS" ; then
		if eval "case \$(basename \"$FILENAME\") in
			 $EXCLUDE_MASKS ) true ;;
			 * ) false ;;
			 esac" ; then
			continue
		fi
	fi
	case $FILENAME in
	*.gz | *.Z)
		gzip -d $FILENAME
		FILENAME=$(echo $FILENAME | sed -e 's/\.gz$//; s/\.Z$//')
		;;
	*.bz2)
		if [ "$RECOMPRESS_BZIP2" = yes ] ; then
			bzip2 -d $FILENAME
			FILENAME=$(echo $FILENAME | sed -e 's/\.bz2$//')
		else
			continue
		fi
		;;
	esac

	$COMPRESS_CMD $FILENAME

	echo -n "$FILENAME "
done

echo
echo "Documentation compressed."
