Files
stream-applications/scripts/build-modified-modules.sh
2023-01-19 12:44:56 +02:00

55 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
function itemInModules() {
local e
for e in ${MODULES}; do
if [[ "$e" == "$ITEM" ]]; then
echo "1"
return 0
fi
done
echo "0"
}
function addItem() {
if [ "$MODULES" == "" ]; then
echo "$1"
else
echo "$MODULES $1"
fi
}
MODIFIED="$*"
ALL_MODULES=$(find . -name "pom.xml" -type f -exec dirname '{}' \; | sed 's/\.\///' | sort -r)
MODULES=
for file in $MODIFIED; do
FILE=$(realpath $file)
echo "$file was changed"
for ITEM in $ALL_MODULES; do
if [[ "$ITEM" != "." ]] && [[ "$file" == *"$ITEM"* ]]; then
echo "Matched $ITEM"
HAS_ITEM=$(itemInModules)
if ((HAS_ITEM == 0)); then
echo "Add:$ITEM"
MODULES=$(addItem "$ITEM")
fi
break
fi
done
done
MVN_MODULES=
for module in $MODULES; do
if [[ "$module" == *"/"* ]]; then
if [ "$MVN_MODULES" == "" ]; then
MVN_MODULES=$module
else
MVN_MODULES="$MVN_MODULES,$module"
fi
else
./mvnw install -pl $module
fi
done
if [ "$MVN_MODULES" != "" ]; then
echo "Building $MVN_MODULES"
./mvnw install -pl "$MVN_MODULES" -amd
fi