diff options
-rwxr-xr-x | build.sh | 16 | ||||
-rw-r--r-- | subr/ex_pkg_dispatch.subr | 27 |
2 files changed, 24 insertions, 19 deletions
@@ -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}"; |