mirror of
https://github.com/SerenityOS/serenity
synced 2024-09-06 17:06:31 +00:00
![Gunnar Beutner](/assets/img/avatar_default.png)
This adds support for detecting incorrect version numbers and links in the ports list. Also, unlike before it doesn't parse the package.sh script but executes it instead which allows us to detect syntax errors.
85 lines
2 KiB
Bash
Executable file
85 lines
2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
clean=false
|
|
verbose=false
|
|
|
|
case "$1" in
|
|
clean)
|
|
clean=true
|
|
;;
|
|
verbose)
|
|
verbose=true
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
case "$2" in
|
|
clean)
|
|
clean=true
|
|
;;
|
|
verbose)
|
|
verbose=true
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
some_failed=false
|
|
built_ports=""
|
|
|
|
for file in *; do
|
|
if [ -d $file ]; then
|
|
pushd $file > /dev/null
|
|
port=$(basename $file)
|
|
port_built=0
|
|
for built_port in $built_ports; do
|
|
if [ "$built_port" = "$port" ]; then
|
|
port_built=1
|
|
break
|
|
fi
|
|
done
|
|
if [ $port_built -eq 1 ]; then
|
|
echo "Built $port."
|
|
popd > /dev/null
|
|
continue
|
|
fi
|
|
if ! [ -f package.sh ]; then
|
|
echo "ERROR: Skipping $port because its package.sh script is missing."
|
|
popd > /dev/null
|
|
continue
|
|
fi
|
|
built_ports="$built_ports $port $(./package.sh showproperty depends) "
|
|
|
|
if [ "$clean" == true ]; then
|
|
if [ "$verbose" == true ]; then
|
|
./package.sh clean_all
|
|
else
|
|
./package.sh clean_all > /dev/null 2>&1
|
|
fi
|
|
fi
|
|
if [ "$verbose" == true ]; then
|
|
if ./package.sh; then
|
|
echo "Built ${port}."
|
|
else
|
|
echo "ERROR: Build of ${port} was not successful!"
|
|
some_failed=true
|
|
fi
|
|
else
|
|
if ./package.sh > /dev/null 2>&1; then
|
|
echo "Built ${port}."
|
|
else
|
|
echo "ERROR: Build of ${port} was not successful!"
|
|
some_failed=true
|
|
fi
|
|
fi
|
|
popd > /dev/null
|
|
fi
|
|
done
|
|
|
|
if [ "$some_failed" == false ]; then
|
|
exit 0
|
|
else
|
|
exit 1
|
|
fi
|