⛏️ index : haiku.git

#!/bin/bash
# Check if a Bootstrap Jam repository file matches the availability of the contents of haikuports.cross

if [ $# -ne 1 ]; then
	echo "usage: $0 <haikuports.cross>"
	exit 1
fi

if [ ! -d "$1" ]; then
	echo "Error: Unable to read haikuports directory '$1'!"
	exit 1
fi

HAIKUPORTS="$1"
REPOFILES="build/jam/repositories/HaikuPortsCross"

if [[ ! -d $REPOFILES ]]; then
	echo "Unable to locate ${REPOFILES}! Run me from the haiku source root!"
	exit 2
fi

RESULT=0
for f in $(find $REPOFILES -maxdepth 1 -type f -print); do
	ARCHITECTURE=$(cat $f | tr '\n' ' ' | awk '{ print $4 } ')
	echo "================ Scanning $ARCHITECTURE / $f"
	REPO_EXPECT=$(cat $f | grep -v "#" | grep '-' | grep 'bootstrap' | grep -v 'bootstrap_')
	for i in $REPO_EXPECT; do
		PACKAGE=$(echo $i | cut -d'-' -f1)
		if [[ $PACKAGE == *_devel* ]]; then
			continue
		fi
		RECIPE_NAME=$(echo $i | sed 's/\-[0-9]$//g')
		RECIPE=$(find $HAIKUPORTS -name ${RECIPE_NAME}.recipe)
		if [[ "$RECIPE" == "" ]]; then
			echo "    $ARCHITECTURE $i... ERROR (Missing recipe $RECIPE_NAME!)"
			RESULT=1
			continue
		fi
		REV=$(echo $i | cut -d'-' -f3)
		grep "REVISION=\"$REV\"" $RECIPE > /dev/null
		if [[ $? -eq 0 ]]; then
			echo "    $ARCHITECTURE $i... OK"
		else
			FOUND_REV=$(grep "REVISION=" $RECIPE | cut -d'=' -f2)
			echo "    $ARCHITECTURE $i... ERROR (Incorrect revision! Found $FOUND_REV!)"
			RESULT=1
		fi
		#echo $i - $PACKAGE
	done
done
exit $RESULT