summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--subr.ex/ex_pkg.subr18
1 files changed, 12 insertions, 6 deletions
diff --git a/subr.ex/ex_pkg.subr b/subr.ex/ex_pkg.subr
index 4d1ae9b1..6f326e1b 100644
--- a/subr.ex/ex_pkg.subr
+++ b/subr.ex/ex_pkg.subr
@@ -216,9 +216,10 @@ ex_pkg_load_vars() {
ex_pkg_load_groups() {
local _eplg_rgroups="${1#\$}" _eplg_rgroups_noauto="${2#\$}" \
_eplg_build_groups="" _eplg_build_groups_noauto="" \
- _eplg_fname="" _eplg_group="" _eplg_group_target="" \
- _eplg_group_target_uc="" _eplg_group_target_appendfl=0 \
- _eplg_groups="" _eplg_pkg_name="" _eplg_pkg_names="";
+ _eplg_fname="" _eplg_group="" _eplg_group_noautofl=0 \
+ _eplg_group_target="" _eplg_group_target_uc="" \
+ _eplg_group_target_appendfl=0 _eplg_groups="" _eplg_pkg_name="" \
+ _eplg_pkg_names="";
for _eplg_fname in $(find ./groups -name *.group | sort); do
rtl_fileop source_opt "${_eplg_fname}";
@@ -236,12 +237,15 @@ ex_pkg_load_groups() {
_eplg_group_target_appendfl=0;
fi;
+ _eplg_group_noautofl=0;
if ! rtl_lmatch \$_eplg_groups "${_eplg_group_target}"; then
rtl_lconcat \$_eplg_groups "${_eplg_group_target}";
if eval [ \"\${GROUP_AUTO:+1}\" = 1 ]; then
if eval [ \"\${GROUP_AUTO:-0}\" -ne 0 ]; then
+ _eplg_group_noautofl=0;
rtl_lconcat \$_eplg_build_groups "${_eplg_group_target}";
else
+ _eplg_group_noautofl=1;
rtl_lconcat \$_eplg_build_groups_noauto "${_eplg_group_target}";
fi;
unset GROUP_AUTO;
@@ -257,9 +261,11 @@ ex_pkg_load_groups() {
rtl_lconcat "\$${_eplg_group_target_uc}_PACKAGES" "${_eplg_pkg_names}";
fi;
- for _eplg_pkg_name in ${_eplg_pkg_names}; do
- rtl_set_var_unsafe -u "PKG_${_eplg_pkg_name}_GROUP_FNAME" "${_eplg_fname}";
- done;
+ if [ "${_eplg_group_noautofl}" -eq 0 ]; then
+ for _eplg_pkg_name in ${_eplg_pkg_names}; do
+ rtl_set_var_unsafe -u "PKG_${_eplg_pkg_name}_GROUP_FNAME" "${_eplg_fname}";
+ done;
+ fi;
fi;
done;