#!/bin/sh # Display bcond_* macros from given spec # $Id$ 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