#!/bin/sh
# Display bcond_* macros from given spec 
# $Id: rpm-find-spec-bcond,v 1.2 2000/12/11 15:03:07 mis Exp $

if [ "$#" = 0 ]; then
    echo "Usage: $0 SPEC"
    exit 1
fi

SPEC=$1
if [ $SPEC = "--" ]; then
    if [ "$#" -lt 2 ]; then
	echo "Usage: rpm --bcond SPEC"
	exit 1
    fi
    SPEC=$2
fi

if [ ! -f $SPEC ]; then
    echo "rpm: $SPEC: no such file"
    exit 1
fi

bconds=`awk -F"\n" 'BEGIN { chlog=0 }
		/^%changelog/ { chlog=1 }
		/bcond_[_a-z0-9]+/ && chlog == 0 {
			match($0, /bcond_[_a-z0-9]+/);
	       		print substr($0, RSTART, RLENGTH)                       
	    	}' $SPEC | sort -u`

for c in $bconds; do
    echo -n "$c"

    if ! echo `rpm --eval "%$c"` | grep $c >/dev/null; then
	echo " (on)"
    else 
	echo ""
    fi
done


for bcond in $bconds; do
    isset=`awk -F"\n" "BEGIN { val=0 }
                   /^%define[\t ]+$bcond/ {
                     if (match(\\$0, /$bcond[\t ]+0[\t ]*$/)) {
                        val = 0
                     } else if (match(\\$0, /$bcond[\t ]+1[\t ]*$/)) {
                        val = 1
                     } else {
                        print \"couldn't determine $bcond value from \", \\$0
                     }
                  } END { print val }" $SPEC`;

    if [ $isset -eq 1 ]; then
	echo "WARN: $bcond defined in spec";
    fi
done
	 
