mirror of
https://github.com/SerenityOS/serenity
synced 2024-11-03 03:29:38 +00:00
89 lines
2.1 KiB
Bash
Executable file
89 lines
2.1 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
|
|
|
|
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
|
|
popd > /dev/null
|
|
continue
|
|
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
|
|
popd > /dev/null
|
|
continue
|
|
fi
|
|
fi
|
|
|
|
built_ports="$built_ports $port $(./package.sh showproperty depends) "
|
|
popd > /dev/null
|
|
fi
|
|
done
|
|
|
|
if [ "$some_failed" == false ]; then
|
|
exit 0
|
|
else
|
|
exit 1
|
|
fi
|