diff --git a/subr/ex_pkg_dispatch.subr b/subr/ex_pkg_dispatch.subr index 0b0fa7d..4ab157c 100644 --- a/subr/ex_pkg_dispatch.subr +++ b/subr/ex_pkg_dispatch.subr @@ -30,7 +30,7 @@ exp_pkg_dispatch() { ex_pkg_dispatch() { local _tgt_name="${1}" _restart="${2}" _restart_at="${3}" _dispatch_fn="${4}" _pkgs_found_vname="${5}" \ _njob="" _njobs="" _njobs_max="" _pipe_msg="" _pipe_path="" _pkg_names="" _pkgs_found="" \ - _script_rc="" _stderrout_path="" _tgt_name_uc=""; + _pkgs_found_new="" _script_rc="" _stderrout_path="" _tgt_name_uc=""; ex_rtl_fileop mkdir "${BUILD_WORKDIR}"; _pipe_path="${BUILD_WORKDIR}/build.fifo"; _tgt_name_uc="$(ex_rtl_toupper "${_tgt_name}")"; @@ -54,7 +54,7 @@ ex_pkg_dispatch() { if [ ${#} -eq 0 ]; then break; else - _pkgs_found="${_pkgs_found:+${_pkgs_found} }${1}"; + _pkgs_found_new="${_pkgs_found_new:+${_pkgs_found_new} }${1}"; exp_pkg_dispatch "${1}" "${_tgt_name}" \ "${_restart_at}" "${_dispatch_fn}" \ "${_stderrout_path}" "${_pipe_path}" \ @@ -94,7 +94,8 @@ ex_pkg_dispatch() { done; "${_dispatch_fn}" finish_target "" "${_tgt_name}"; if [ -n "${_pkgs_found_vname}" ]; then - ex_rtl_set_var_unsafe "${_pkgs_found_vname}" "${_pkgs_found}"; + _pkgs_found="$(ex_rtl_get_var_unsafe "${_pkgs_found_vname}")"; + ex_rtl_set_var_unsafe "${_pkgs_found_vname}" "${_pkgs_found:+${_pkgs_found} }${_pkgs_found_new}"; fi; };