exec_opkg_commands() using exec_process_substitution()

This commit is contained in:
Gerhard Hoffmann 2022-06-04 14:43:27 +02:00
parent 4989ee8d05
commit 4a8b76f815

19
update_psa_helpers Normal file → Executable file
View File

@ -6,25 +6,16 @@
# return 0 # return 0
#fi #fi
source ./general_utils
exec_opkg_command () { exec_opkg_command () {
local func="${FUNCNAME[0]}" local func="${FUNCNAME[0]}"
log_debug "$func:${LINENO} exec-ing [$*]" log_debug "$func:${LINENO} exec-ing [$*]"
exec {fd}< <(eval "$@") local __result=$(exec_process_substitution $*)
local ps_pid=$! # remember pid of process substitution log_debug "$func:${LINENO} result=$__result"
local opkg_result="" printf '%s' "$__result"
while read tmp <&$fd; do
if ! [ -z "$tmp" ]; then
opkg_result="${opkg_result}$tmp"
fi
done
exec {fd}>&- # close fd (i.e. process substitution)
wait $ps_pid # wait for the subshell to finish
printf '%s' "$opkg_result"
} }
# Fetch/merge updates from predefined repository using git. # Fetch/merge updates from predefined repository using git.