diff options
Diffstat (limited to 'subr')
-rw-r--r-- | subr/ex_pkg_dispatch.subr | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/subr/ex_pkg_dispatch.subr b/subr/ex_pkg_dispatch.subr index 236e9aaf..860361cc 100644 --- a/subr/ex_pkg_dispatch.subr +++ b/subr/ex_pkg_dispatch.subr @@ -29,7 +29,6 @@ exp_pkg_dispatch_group() { "${_pkg_name}" "${_restart_at}" "${_stderrout_path}" \ "${_pipe_path}"; then _pkgs_found_new="${_pkgs_found_new:+${_pkgs_found_new} }${_pkg_name}"; - _pkg_names="$(ex_rtl_lfilter "${_pkg_names}" "${_pkg_name}")"; break; fi; done; @@ -42,10 +41,12 @@ exp_pkg_dispatch_package() { _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; + _pkg_names="$(ex_rtl_lfilter "${_pkg_names}" "${_pkg_name}")"; "${_dispatch_fn}" disabled_pkg "${_group_name}" "${_pkg_name}"; elif ex_pkg_state_test "${_pkg_name}" finish\ && [ -z "${_restart_at}" ]; then _pkgs_complete="${_pkgs_complete:+${_pkgs_complete} }${_pkg_name}"; _rc=1; + _pkg_names="$(ex_rtl_lfilter "${_pkg_names}" "${_pkg_name}")"; "${_dispatch_fn}" skipped_pkg "${_group_name}" "${_pkg_name}"; else _pkgs_wait="${_pkgs_wait:+${_pkgs_wait} }${_pkg_name}"; @@ -102,6 +103,7 @@ ex_pkg_dispatch() { case "${_pipe_msg%% *}" in done) "${_dispatch_fn}" finish_pkg ${_pipe_msg#done }; _pkg_name="${_pipe_msg#done * }"; : $((_njobs-=1)); _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}")"; if [ "${_script_rc:-0}" -eq 0 ]; then exp_pkg_dispatch_group; |