mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-04 05:20:30 +00:00
81d9a6f44a
The script previously failed early after building `mandoc`, as it failed to switch to the correct directory for the next port. With this change, the script now runs to completion.
113 lines
2.3 KiB
Bash
Executable file
113 lines
2.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
some_failed='false'
|
|
action='build'
|
|
verbose='false'
|
|
failfast='false'
|
|
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
clean*)
|
|
action="$arg"
|
|
;;
|
|
verbose)
|
|
verbose='true'
|
|
;;
|
|
failfast)
|
|
failfast='true'
|
|
;;
|
|
esac
|
|
done
|
|
|
|
some_failed=false
|
|
processed_ports=()
|
|
|
|
log_success() {
|
|
echo -e "\033[1;32m[#]\033[0m $1"
|
|
}
|
|
|
|
log_warn() {
|
|
echo -e "\033[1;33m[!]\033[0m $1"
|
|
}
|
|
|
|
log_info() {
|
|
echo -e "\033[1;36m[*]\033[0m $1"
|
|
}
|
|
|
|
log_process() {
|
|
echo -e "\033[1m[~]\033[0m $1"
|
|
}
|
|
|
|
log_error() {
|
|
echo -e "\033[1;31m[x]\033[0m $1"
|
|
}
|
|
|
|
do_build_port() {
|
|
log_process "Building $port_name"
|
|
if $verbose; then
|
|
./package.sh
|
|
else
|
|
./package.sh &> /dev/null
|
|
fi
|
|
}
|
|
|
|
do_clean_port() {
|
|
log_process "Cleaning $port_name"
|
|
if $verbose; then
|
|
./package.sh "$1"
|
|
else
|
|
./package.sh "$1" &> /dev/null
|
|
fi
|
|
}
|
|
|
|
ports_dir=$(realpath "$(dirname "${BASH_SOURCE[0]}")")
|
|
mapfile -d '' directories < <(find "$ports_dir" -mindepth 1 -maxdepth 1 -type d -print0 | sort -z)
|
|
for port_dir in "${directories[@]}"; do
|
|
port_name="$(basename "$port_dir")"
|
|
if [[ " ${processed_ports[*]} " == *" $port_name "* ]]; then
|
|
log_info "$port_name is already processed"
|
|
continue
|
|
fi
|
|
|
|
if ! cd "$port_dir"; then
|
|
log_error "Can not change directory to '$port_name'"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -x ./package.sh ]]; then
|
|
log_warn "$port_name does not have executable package.sh"
|
|
continue
|
|
fi
|
|
|
|
case "$action" in
|
|
clean*)
|
|
if do_clean_port "$action"; then
|
|
log_success "Cleaned $port_name"
|
|
else
|
|
log_error "Failed cleaning $port_name"
|
|
some_failed='true'
|
|
if $failfast; then
|
|
exit 1
|
|
fi
|
|
fi
|
|
;;
|
|
build)
|
|
if do_build_port; then
|
|
log_success "Built $port_name"
|
|
else
|
|
log_error "Failed building $port_name"
|
|
some_failed='true'
|
|
if $failfast; then
|
|
exit 1
|
|
fi
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
# shellcheck disable=SC2207
|
|
processed_ports+=("$port_name" $(./package.sh showproperty depends))
|
|
done
|
|
|
|
if $some_failed; then
|
|
exit 1
|
|
fi
|