blob: 6a335499d5bbdc5d3284bc42d55948cb6578f6d3 [file] [log] [blame]
#!/bin/bash
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <RPM_FILE> <EXPECTED_LIST_FILE>"
exit 1
fi
RPM_FILE="$1"
EXPECTED_LIST_FILE="$2"
if [ ! -f "$RPM_FILE" ]; then
echo "Error: RPM file not found at '$RPM_FILE'"
exit 1
fi
if [ ! -f "$EXPECTED_LIST_FILE" ]; then
echo "Error: Expected list file not found at '$EXPECTED_LIST_FILE'"
exit 1
fi
ACTUAL_SORTED=$(mktemp)
EXPECTED_SORTED=$(mktemp)
trap 'rm -f "$ACTUAL_SORTED" "$EXPECTED_SORTED"' EXIT
echo "--- Analyzing RPM package: $RPM_FILE ---"
rpm -qlp "$RPM_FILE" | sort > "$ACTUAL_SORTED"
sort "$EXPECTED_LIST_FILE" > "$EXPECTED_SORTED"
if ! DIFFERENCES=$(diff "$ACTUAL_SORTED" "$EXPECTED_SORTED"); then
echo "FAILURE: The RPM contents do not match the expected list."
echo ""
echo "--- Differences ---"
echo "< Lines only in the RPM"
echo "> Lines only in your expected list"
echo "-------------------"
echo "$DIFFERENCES"
exit 1
else
echo "SUCCESS: The RPM contents match the expected list."
exit 0
fi