From b2c1ea9526151c4fed9dca8348019d718f489e76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Andrea=20Illanes=20Albornoz?= Date: Wed, 24 Apr 2024 15:24:48 +0200 Subject: Implements single package files. --- subr.ex/ex_pkg.subr | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'subr.ex') diff --git a/subr.ex/ex_pkg.subr b/subr.ex/ex_pkg.subr index c914360e..6c020702 100644 --- a/subr.ex/ex_pkg.subr +++ b/subr.ex/ex_pkg.subr @@ -257,7 +257,7 @@ ex_pkg_load_groups() { _eplg_pkg_names=""; for _eplg_fname in $(find ./groups.d -name *.group | sort); do - rtl_fileop source_opt "${_eplg_fname}"; + rtl_fileop source "${_eplg_fname}"; _eplg_group="${_eplg_fname##*/}"; _eplg_group="${_eplg_group%.group}"; @@ -305,6 +305,10 @@ ex_pkg_load_groups() { fi; done; + for _eplg_fname in $(find ./groups.d -mindepth 2 -name *.package | sort); do + rtl_fileop source_with_fnamevar "${_eplg_fname}"; + done; + _eplg_build_groups="$(rtl_uniq "${_eplg_build_groups}")"; eval ${_eplg_rgroups}=\"${_eplg_build_groups}\"; @@ -316,6 +320,33 @@ ex_pkg_load_groups() { return 0; }; +# +# ex_pkg_register() - register single package +# @_pkg_name: single package name +# @_fname: pathname to file package is defined in, relative to midipix_build root +# @[_group_name]: optional build group name; inferred from @_fname if not specified +# +# Returns: zero (0) on success, non-zero (>0) on failure. +# +ex_pkg_register() { + local _epr_pkg_name="${1}" _epr_fname="${2}" _epr_group_name="${3:-}" \ + _epr_group_name_uc="" _epr_group_noautofl=0; + + if [ "${_epr_group_name:+1}" != 1 ]; then + _epr_group_name="${_epr_fname#./*/}"; + _epr_group_name="${_epr_group_name%%/*}"; + _epr_group_name="${_epr_group_name%.d}"; + _epr_group_name="${_epr_group_name#*.}"; + fi; + + rtl_toupper2 \$_epr_group_name \$_epr_group_name_uc; + rtl_lconcat "\$${_epr_group_name_uc}_PACKAGES" "${_epr_pkg_name}"; + rtl_set_var_unsafe -u "PKG_${_epr_pkg_name}_GROUP" "${_epr_group_name}"; + rtl_set_var_unsafe -u "PKG_${_epr_pkg_name}_GROUP_FNAME" "${_epr_fname}"; + + return 0; +}; + # # ex_pkg_unfold_depends() - unfold list of package names into dependency-expanded set of complete, disabled, finished, and outstanding package names # @_rdisabled: in reference toout variable of disabled packages -- cgit v1.2.3