summaryrefslogtreecommitdiffhomepage
path: root/subr.ex
diff options
context:
space:
mode:
authorLucía Andrea Illanes Albornoz <lucia@luciaillanes.de>2023-03-26 15:22:05 +0200
committerLucía Andrea Illanes Albornoz <lucia@luciaillanes.de>2023-03-26 15:35:28 +0200
commit6a630d65522105b25363ab4ac10248fc13b1c783 (patch)
treefb7b0cc06f9a64a5a20bf18b8d31244d19a933b9 /subr.ex
parentd677b4ef2b668e64f85bcb55c96c7c8519ef9279 (diff)
downloadmidipix_build-6a630d65522105b25363ab4ac10248fc13b1c783.tar.bz2
midipix_build-6a630d65522105b25363ab4ac10248fc13b1c783.tar.xz
Print group file pathname in ./pkgtool.sh -i output.
Diffstat (limited to 'subr.ex')
-rw-r--r--subr.ex/ex_pkg.subr51
1 files changed, 33 insertions, 18 deletions
diff --git a/subr.ex/ex_pkg.subr b/subr.ex/ex_pkg.subr
index 041faa4f..4d1ae9b1 100644
--- a/subr.ex/ex_pkg.subr
+++ b/subr.ex/ex_pkg.subr
@@ -210,42 +210,57 @@ ex_pkg_load_vars() {
# ex_pkg_load_groups() - load all available build groups
# @_rgroups: reference to out variable of build groups
# @_rgroups_noauoto: optional reference to out variable of build groups not built automatically
-# @_rgroup_auto: reference to in variable of flag controlling whether to build group automatically
-# @_rgroup_target: reference to in variable of build group targets
#
# Returns: zero (0) on success, non-zero (>0) on failure.
#
ex_pkg_load_groups() {
local _eplg_rgroups="${1#\$}" _eplg_rgroups_noauto="${2#\$}" \
- _eplg_rgroup_auto="${3#\$}" _eplg_rgroup_target="${4#\$}" \
_eplg_build_groups="" _eplg_build_groups_noauto="" \
- _eplg_fname="" _eplg_group="" _eplg_groups="";
+ _eplg_fname="" _eplg_group="" _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}";
- if eval [ \"\${${_eplg_rgroup_target}:+1}\" = 1 ]; then
- eval _eplg_group=\"\${${_eplg_rgroup_target}}\";
- eval unset ${_eplg_rgroup_target};
+ _eplg_group="${_eplg_fname##*/}";
+ _eplg_group="${_eplg_group%.group}";
+ _eplg_group="${_eplg_group#*.}";
+
+ if [ "${GROUP_TARGET_APPEND:+1}" = 1 ]; then
+ _eplg_group_target="${GROUP_TARGET_APPEND}";
+ _eplg_group_target_appendfl=1;
+ unset GROUP_TARGET_APPEND;
else
- _eplg_group="${_eplg_fname##*/}";
- _eplg_group="${_eplg_group%.group}";
- _eplg_group="${_eplg_group#*.}";
+ _eplg_group_target="${_eplg_group}";
+ _eplg_group_target_appendfl=0;
fi;
- if ! rtl_lmatch \$_eplg_groups "${_eplg_group}"; then
- rtl_lconcat \$_eplg_groups "${_eplg_group}";
- if eval [ \"\${${_eplg_rgroup_auto}:+1}\" = 1 ]; then
- if eval [ \"\${${_eplg_rgroup_auto}:-0}\" -ne 0 ]; then
- rtl_lconcat \$_eplg_build_groups "${_eplg_group}";
+ 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
+ rtl_lconcat \$_eplg_build_groups "${_eplg_group_target}";
else
- rtl_lconcat \$_eplg_build_groups_noauto "${_eplg_group}";
+ rtl_lconcat \$_eplg_build_groups_noauto "${_eplg_group_target}";
fi;
- eval unset ${_eplg_rgroup_auto};
+ unset GROUP_AUTO;
else
- rtl_lconcat \$_eplg_build_groups "${_eplg_group}";
+ rtl_lconcat \$_eplg_build_groups "${_eplg_group_target}";
fi;
fi;
+
+ if rtl_get_var_unsafe \$_eplg_pkg_names -u "${_eplg_group}_PACKAGES"\
+ && [ "${_eplg_pkg_names:+1}" = 1 ]; then
+ if [ "${_eplg_group_target_appendfl}" -eq 1 ]; then
+ rtl_toupper2 \$_eplg_group_target \$_eplg_group_target_uc;
+ 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;
+ fi;
done;
_eplg_build_groups="$(rtl_uniq "${_eplg_build_groups}")";