summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rwxr-xr-xbuild.sh16
-rw-r--r--subr/ex_pkg_dispatch.subr27
2 files changed, 24 insertions, 19 deletions
diff --git a/build.sh b/build.sh
index 24dd75c5..1b4cee45 100755
--- a/build.sh
+++ b/build.sh
@@ -54,23 +54,23 @@ buildp_dispatch() {
finish_group) ex_rtl_log_msg suc2 "Finished \`${_group_name}' build group."; ;;
# Package build
- start_pkg) ex_rtl_log_msg info "Starting \`${_pkg_name}' build..."; ;;
+ start_pkg) ex_rtl_log_msg info "$(printf "[%03d/%03d] Starting \`%s' build..." "${4}" "${5}" "${_pkg_name}")"; ;;
finish_pkg) : $((BUILD_NFINI+=1));
if [ "${ARG_VERBOSE:-0}" -ge 2 ]; then
cat "${BUILD_WORKDIR}/${_pkg_name}_stderrout.log";
fi;
- ex_rtl_log_msg succ "Finished \`${_pkg_name}' build."; ;;
+ ex_rtl_log_msg succ "$(printf "Finished \`%s' build." "${_pkg_name}")"; ;;
fail_pkg) : $((BUILD_NFAIL+=1));
BUILD_PKGS_FAILED="${BUILD_PKGS_FAILED:+${BUILD_PKGS_FAILED} }${_pkg_name}";
if [ "${ARG_RELAXED:-0}" -eq 1 ]; then
- ex_rtl_log_msg fail "Build failed in \`${_pkg_name}', check \`${BUILD_WORKDIR}/${_pkg_name}_stderrout.log' for details.";
+ ex_rtl_log_msg fail "$(printf "Build failed in \`%s', check \`%s' for details." "${_pkg_name}" "${BUILD_WORKDIR}/${_pkg_name}_stderrout.log")";
else
ex_rtl_log_msg fail "${BUILD_WORKDIR}/${_pkg_name}_stderrout.log:";
cat "${BUILD_WORKDIR}/${_pkg_name}_stderrout.log";
if [ -n "${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME}" ]; then
echo "${_pkg_name}" > "${DEFAULT_BUILD_LAST_FAILED_PKG_FNAME}";
fi;
- ex_rtl_log_msg fail "Build failed in \`${_pkg_name}'.";
+ ex_rtl_log_msg fail "$(printf "Build failed in \`%s'." "${_pkg_name}")";
if [ "${ARG_PARALLEL:-0}" -eq 1 ]; then
ex_rtl_log_msg fail "Terminating pending builds...";
pkill -P "${$}";
@@ -78,10 +78,10 @@ buildp_dispatch() {
exit 1;
fi; ;;
disabled_pkg) : $((BUILD_NSKIP+=1));
- ex_rtl_log_msg vnfo "Skipping disabled package \`${_pkg_name}.'"; ;;
+ ex_rtl_log_msg vnfo "$(printf "[%03d/%03d] Skipping disabled package \`%s.'" "${4}" "${5}" "${_pkg_name}")"; ;;
skipped_pkg) : $((BUILD_NSKIP+=1));
- ex_rtl_log_msg vnfo "Skipping finished package \`${_pkg_name}.'"; ;;
- step_pkg) ex_rtl_log_msg vucc "Finished build step ${4} of package \`${_pkg_name}'."; ;;
+ ex_rtl_log_msg vnfo "$(printf "[%03d/%03d] Skipping finished package \`%s.'" "${4}" "${5}" "${_pkg_name}")"; ;;
+ step_pkg) ex_rtl_log_msg vucc "$(printf "Finished build step %s of package \`%s'." "${4}" "${_pkg_name}")"; ;;
# Child process
exec_finish) ;;
@@ -100,4 +100,4 @@ buildp_dispatch() {
for __ in $(find subr -name *.subr); do
. "${__}"; done; buildp_dispatch start_build "${@}";
-# vim:filetype=sh
+# vim:filetype=sh textwidth=0
diff --git a/subr/ex_pkg_dispatch.subr b/subr/ex_pkg_dispatch.subr
index e2707ae6..2a40e16c 100644
--- a/subr/ex_pkg_dispatch.subr
+++ b/subr/ex_pkg_dispatch.subr
@@ -43,18 +43,20 @@ exp_pkg_dispatch_package() {
_stderrout_path="${5}" _pipe_path="${6}" _pkg_name_uc="" _rc=0;
_pkg_name_uc="$(ex_rtl_toupper "${_pkg_name}")";
if [ -n "$(ex_rtl_get_var_unsafe PKG_${_pkg_name_uc}_DISABLED)" ]; then
- _pkgs_complete="${_pkgs_complete:+${_pkgs_complete} }${_pkg_name}"; _rc=1;
+ _pkgs_complete="${_pkgs_complete:+${_pkgs_complete} }${_pkg_name}";
_pkg_names="$(ex_rtl_lfilter "${_pkg_names}" "${_pkg_name}")";
- "${_dispatch_fn}" disabled_pkg "${_group_name}" "${_pkg_name}";
+ : $((_pkgs_count+=1)); _rc=1;
+ "${_dispatch_fn}" disabled_pkg "${_group_name}" "${_pkg_name}" "${_pkgs_count}" "${_pkgs_count_max}";
elif ex_pkg_state_test "${_pkg_name}" finish\
&& [ -z "${_restart_at}" ]; then
- _pkgs_complete="${_pkgs_complete:+${_pkgs_complete} }${_pkg_name}"; _rc=1;
+ _pkgs_complete="${_pkgs_complete:+${_pkgs_complete} }${_pkg_name}";
_pkg_names="$(ex_rtl_lfilter "${_pkg_names}" "${_pkg_name}")";
- "${_dispatch_fn}" skipped_pkg "${_group_name}" "${_pkg_name}";
+ : $((_pkgs_count+=1)); _rc=1;
+ "${_dispatch_fn}" skipped_pkg "${_group_name}" "${_pkg_name}" "${_pkgs_count}" "${_pkgs_count_max}";
else
- _pkgs_wait="${_pkgs_wait:+${_pkgs_wait} }${_pkg_name}";
+ : $((_pkgs_count+=1)); _pkgs_wait="${_pkgs_wait:+${_pkgs_wait} }${_pkg_name}";
_stderrout_path="${BUILD_WORKDIR}/${_pkg_name}_stderrout.log";
- "${_dispatch_fn}" start_pkg "${_group_name}" "${_pkg_name}";
+ "${_dispatch_fn}" start_pkg "${_group_name}" "${_pkg_name}" "${_pkgs_count}" "${_pkgs_count_max}";
(set -o errexit -o noglob; BUILD_IS_PARENT=0;
ex_pkg_env "${_group_name}" "${_pkg_name}" "${_restart_at}";
ex_pkg_exec "${_group_name}" "${_pkg_name}" "${_restart_at}" \
@@ -95,11 +97,14 @@ exp_pkg_get_packages() {
ex_pkg_dispatch() {
local _group_name="${1}" _restart="${2}" _restart_at="${3}" _dispatch_fn="${4}" _pkgs_found_vname="${5}" \
_njob="" _njobs=0 _njobs_max=1 _pipe_msg="" _pipe_path="${BUILD_WORKDIR}/build.fifo" \
- _pkg_name="" _pkg_names="" _pkgs_complete="" _pkgs_found="" _pkgs_found_new="" _pkgs_wait="" \
- _script_rc=0 _stderrout_path="";
+ _pkg_name="" _pkg_names="" _pkgs_complete="" _pkgs_count=0 _pkgs_count_max=0 _pkgs_found="" \
+ _pkgs_found_new="" _pkgs_wait="" _script_rc=0 _stderrout_path="";
"${_dispatch_fn}" start_group "${_group_name}" ""; ex_rtl_fileop mkdir "${BUILD_WORKDIR}";
if exp_pkg_get_packages "${_dispatch_fn}" "${_group_name}" "${_restart}"\
&& [ -n "${_pkg_names}" ]; then
+ for _pkg_name in ${_pkg_names}; do
+ : $((_pkgs_count_max+=1));
+ done;
if [ "${ARG_PARALLEL:-0}" -gt 1 ]\
&& ! [ "$(ex_rtl_get_var_unsafe "$(ex_rtl_toupper "${_group_name}")"_IN_ORDER)" = 1 ]; then
_njobs_max="${DEFAULT_BUILD_CPUS}";
@@ -108,7 +113,8 @@ ex_pkg_dispatch() {
while [ "${_njobs:-0}" -gt 0 ]; do
while read _pipe_msg; do
case "${_pipe_msg%% *}" in
- done) "${_dispatch_fn}" finish_pkg ${_pipe_msg#done }; _pkg_name="${_pipe_msg#done * }"; : $((_njobs-=1));
+ done) "${_dispatch_fn}" finish_pkg ${_pipe_msg#done };
+ : $((_njobs-=1)); _pkg_name="${_pipe_msg#done * }";
_pkgs_complete="${_pkgs_complete:+${_pkgs_complete} }${_pkg_name}";
_pkg_names="$(ex_rtl_lfilter "${_pkg_names}" "${_pkg_name}")";
_pkgs_wait="$(ex_rtl_lfilter "${_pkgs_wait}" "${_pkg_name}")";
@@ -119,8 +125,7 @@ ex_pkg_dispatch() {
&& [ -z "${_pkg_names}" ]; then
break;
fi; ;;
- fail) _script_rc=1;
- "${_dispatch_fn}" fail_pkg ${_pipe_msg#fail };
+ fail) _script_rc=1; "${_dispatch_fn}" fail_pkg ${_pipe_msg#fail };
[ $((_njobs-=1)) -eq 0 ] && break; ;;
step) "${_dispatch_fn}" step_pkg ${_pipe_msg#step }; ;;
esac; done <>"${_pipe_path}";