Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
changeset 797:7f64b4420703
fports: Refactor: split up command_detail(): make a function that is called for each package
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Thu, 31 Oct 2024 14:54:27 +0100 |
| parents | e48d173534ec |
| children | e48b38cf7bb1 |
| files | sbin/fports |
| diffstat | 1 files changed, 52 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/sbin/fports Thu Oct 31 14:42:51 2024 +0100 +++ b/sbin/fports Thu Oct 31 14:54:27 2024 +0100 @@ -355,30 +355,7 @@ indexfile="$(get_local_index_file)" for package in "$@"; do - # shellcheck disable=SC2034 # appears unused - title_printed=no - IFS='|' read -r instver instrepo <<EOF_e9bd7819-b4c5-4a86-b984-f5226db58cb1 -$(LC_ALL=C.UTF-8 "${PKG}" query '%v|%R' "${package}") -EOF_e9bd7819-b4c5-4a86-b984-f5226db58cb1 - print_title title_printed "${package}" "${instver}" "${instrepo}" - if [ -n "${indexfile}" ]; then - read -r _dummy pkglabel pkgdescr <<EOF_b1f225bd-d234-4a23-8a2a-40c2e5b7ff3c -$(LC_ALL=C.UTF-8 "${PKG}" version -U -I -n "${package}" -v "${indexfile}") -EOF_b1f225bd-d234-4a23-8a2a-40c2e5b7ff3c - pkgversion="$(parse_index_file_for_package_version "${indexfile}" "${package}")" - print_detail_item "INDEX" "${pkgversion}" "${pkglabel}" "${pkgdescr}" - fi - farray_for_each repositories _command_package_repository_detail "${package}" 0 - mapped_package="$(get_package_mapping "${packagemapping}" "${package}")" - if [ -z "${mapped_package}" ]; then - printf '%18s %s\n' "--------------->" "${mapped_package}" - if [ -n "${indexfile}" ]; then - pkgversion="$(parse_index_file_for_package_version "${indexfile}" "${mapped_package}")" - pkglabel="$(LC_ALL=C.UTF-8 "${PKG}" version --test-version "${instver}" "${pkgversion}")" - print_detail_item "INDEX" "${pkgversion}" "${pkglabel}" '' 19 - fi - farray_for_each repositories _command_mapped_package_repository_detail "${mapped_package}" "{instver}" 19 - fi + _package_detail "${package}" "${packagemapping}" "${repositories}" "${indexfile}" done falist_release "${packagemapping}" @@ -387,6 +364,55 @@ #: +#: Implementation of printing the most details possible for a package. +#: +#: Implements all the repeating stuff for a package for e.g. `command_detail`. +#: +#: Args: +#: $1 (str): The name of the package +#: $2 (alist): The +#: $3 (array): The array with all the configured/active repositories +#: $4 (str, null): The local index file if it exists +#: +_package_detail() { + local package packagemapping repositories indexfile + + local instver instrepo repo title_printed _dummy \ + pkglabel pkgdescr pkgversion mapped_package + + package="${1}" + packagemapping="${2}" + repositories="${3}" + indexfile="${4}" + + # shellcheck disable=SC2034 # appears unused + title_printed=no + IFS='|' read -r instver instrepo <<EOF_e9bd7819-b4c5-4a86-b984-f5226db58cb1 +$(LC_ALL=C.UTF-8 "${PKG}" query '%v|%R' "${package}") +EOF_e9bd7819-b4c5-4a86-b984-f5226db58cb1 + print_title title_printed "${package}" "${instver}" "${instrepo}" + if [ -n "${indexfile}" ]; then + read -r _dummy pkglabel pkgdescr <<EOF_b1f225bd-d234-4a23-8a2a-40c2e5b7ff3c +$(LC_ALL=C.UTF-8 "${PKG}" version -U -I -n "${package}" -v "${indexfile}") +EOF_b1f225bd-d234-4a23-8a2a-40c2e5b7ff3c + pkgversion="$(parse_index_file_for_package_version "${indexfile}" "${package}")" + print_detail_item "INDEX" "${pkgversion}" "${pkglabel}" "${pkgdescr}" + fi + farray_for_each repositories _package_repository_detail "${package}" 0 + mapped_package="$(get_package_mapping "${packagemapping}" "${package}")" + if [ -z "${mapped_package}" ]; then + printf '%18s %s\n' "--------------->" "${mapped_package}" + if [ -n "${indexfile}" ]; then + pkgversion="$(parse_index_file_for_package_version "${indexfile}" "${mapped_package}")" + pkglabel="$(LC_ALL=C.UTF-8 "${PKG}" version --test-version "${instver}" "${pkgversion}")" + print_detail_item "INDEX" "${pkgversion}" "${pkglabel}" '' 19 + fi + farray_for_each repositories _mapped_package_repository_detail "${mapped_package}" "{instver}" 19 + fi +} + + +#: #: Array callback to print package details with regard to a repository. #: #: Args: @@ -396,7 +422,7 @@ #: $4 (str): The (master) package name #: $5 (int): The extra indent value to forward to called functions #: -_command_package_repository_detail() { +_package_repository_detail() { local repositories idx reponame package extraindent local _dummy \ @@ -429,7 +455,7 @@ #: $5 (str): The parent package version #: $6 (int): The extra indent value to forward to called functions #: -_command_mapped_package_repository_detail() { +_mapped_package_repository_detail() { local repositories idx reponame package parent_pkgversion extraindent local _dummy \
