fixup! license filtering

This commit is contained in:
Krzesimir Nowak 2025-08-05 18:40:56 +02:00
parent 42e8985a1a
commit c3085e0028
2 changed files with 28 additions and 40 deletions

View File

@ -26,11 +26,13 @@ function evaluate_license_group() {
local -a groups_to_process=( "${license_group_name}" ) local -a groups_to_process=( "${license_group_name}" )
local do_process_items
while [[ ${#groups_to_process[*]} -gt 0 ]]; do while [[ ${#groups_to_process[*]} -gt 0 ]]; do
local -n group_ref=${groups_to_process[-1]} local -n group_ref=${groups_to_process[-1]}
unset 'groups_to_process[-1]' unset 'groups_to_process[-1]'
local -n group_items_ref=${group_ref[GROUP_ITEMS_IDX]} local -n group_items_ref=${group_ref[GROUP_ITEMS_IDX]}
do_process_items=''
case ${group_ref[GROUP_TYPE_IDX]} in case ${group_ref[GROUP_TYPE_IDX]} in
"${GROUP_ALL_OF}") "${GROUP_ALL_OF}")
local name=${group_ref[GROUP_USE_IDX]} local name=${group_ref[GROUP_USE_IDX]}
@ -50,53 +52,39 @@ function evaluate_license_group() {
fi fi
local -i flag_mode=${use_flags_map_ref["${mode}"]} local -i flag_mode=${use_flags_map_ref["${mode}"]}
if [[ mode -eq flag_mode ]]; then if [[ mode -eq flag_mode ]]; then
local item_var_name do_process_items=x
for item_var_name in "${group_items_ref[@]}"; do
local -n item_ref=${item_var_name}
case ${item_ref:0:1} in
'e')
: # nothing to do here
;;
'g')
groups_to_process+=( "${item_ref:2}" )
;;
'l')
used_licenses_ref+=( "${item_ref:2}" )
;;
*)
fail "item ${item_ref} is bad"
;;
esac
unset -n item_ref
done
fi fi
else
do_process_items=x
fi fi
unset name unset name
;; ;;
"${GROUP_ANY_OF}") "${GROUP_ANY_OF}")
local item_var_name do_process_items=x
for item_var_name in "${group_items_ref[@]}"; do
local -n item_ref=${item_var_name}
case ${item_ref:0:1} in
'e')
: # nothing to do here
;;
'g')
groups_to_process+=( "${item_ref:2}" )
;;
'l')
used_licenses_ref+=( "${item_ref:2}" )
;;
*)
fail "item ${item_ref} is bad"
;;
esac
unset -n item_ref
done
;; ;;
esac esac
if [[ -n ${do_process_items} ]]; then
local item_var_name
for item_var_name in "${group_items_ref[@]}"; do
local -n item_ref=${item_var_name}
case ${item_ref:0:1} in
'e')
: # nothing to do here
;;
'g')
groups_to_process+=( "${item_ref:2}" )
;;
'l')
used_licenses_ref+=( "${item_ref:2}" )
;;
*)
fail "item ${item_ref} is bad"
;;
esac
unset -n item_ref
done
fi
unset -n group_items_ref unset -n group_items_ref
unset -n group_ref unset -n group_ref
done done
} }

View File

@ -2409,7 +2409,7 @@ function kvr_unset() {
local name array_name pkg_map_name kv_map_name local name array_name pkg_map_name kv_map_name
for name; do for name; do
local -n reports_ref=${name} local -n reports_ref=${name}
array_name=${reports_ref[KVR_MVMS_IDX]} array_name=${reports_ref[KVR_MAPS_IDX]}
unset -n reports_ref unset -n reports_ref
if [[ ${array_name} = 'EMPTY_ARRAY' ]]; then if [[ ${array_name} = 'EMPTY_ARRAY' ]]; then
continue continue