summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2022-09-19 01:01:53 -0400
committerbill-auger <mr.j.spam.me@gmail.com>2023-12-14 17:13:11 -0500
commitadc943085f66e40cc19c0aa11c3e39803d49a5e6 (patch)
treed94461e7e8d594d3275243579b7a091d3e325681
parent40ce3d91e9d53c60f0eb0696b22b428d2e35bfcd (diff)
[parabola-dependents]: print arch abs dependency chains
-rwxr-xr-xparabola-dependents68
1 files changed, 38 insertions, 30 deletions
diff --git a/parabola-dependents b/parabola-dependents
index 8f44207..00b3dfc 100755
--- a/parabola-dependents
+++ b/parabola-dependents
@@ -66,8 +66,8 @@ CFG_FILE='' # Init()
PACMAN_OPTS='' # Init()
PACTREE_OPTS='' # Init()
-Ignored=() # CollectResults()
-Dependents=() # CollectResults()
+ParabolaDependents=() # CollectResults()
+ArchDependents=() # CollectResults()
Makedependents=() # CollectResults()
declare -A HiorderDependents # CollectResults()
@@ -110,6 +110,23 @@ IsArchRepo() # (repo)
local repo=$1 ; [[ "${repo}" =~ ^(community|core|extra|multilib|testing)$ ]]
}
+PrintDependent() # ("dep_chain")
+{
+ local dep_chain="$@"
+ local is_hiorder_dep=$( (( $(tr '<' '\n' <<<${dep_chain} | wc -l) > 2 )) && echo 1 || echo 0 )
+ local via_pkg repo_pkg
+
+ if (( BE_VERBOSE ))
+ then # display all transitive dependents
+ echo " ${dep_chain/ /${SEP_CHAR}}"
+ elif ! (( is_hiorder_dep ))
+ then # display only first-order dependents
+ via_pkg=$(sed 's|.*\] <- \([^ ]*\).*|\1|' <<<${dep_chain})
+ repo_pkg=${dep_chain/ *}
+ n_hiorder_deps=$(( ${HiorderDependents[${via_pkg}]} - 1 ))
+ echo " ${repo_pkg}${SEP_CHAR}(${n_hiorder_deps} higher-order deps)"
+ fi
+}
## business ##
@@ -197,8 +214,8 @@ CollectResults()
for repo in ${repos}
do if IsArchRepo ${repo}
- then Ignored+=( "${repo}/${dep_pkg}" )
- else Dependents+=( "${repo}/${dep_pkg} ${dep_chain}" )
+ then ArchDependents+=( "${repo}/${dep_pkg} ${dep_chain}" )
+ else ParabolaDependents+=( "${repo}/${dep_pkg} ${dep_chain}" )
HiorderDependents[${via_pkg}]=$(( ${HiorderDependents[${via_pkg}]} + 1 ))
fi
done
@@ -207,27 +224,27 @@ CollectResults()
PrintReport()
{
- local log_msg="\ndirect$( ! (( BE_VERBOSE )) || echo " and transitive") parabola dependents:"
- local dep_chain is_hiorder_dep via_pkg repo_pkg
+ local dep_chain
declare -i n_hiorder_deps
# report parabola abslibre packages with some degree of run-time dependency
# on the input package or sodep
- (( ${#Dependents[*]} )) && Log "${log_msg}"
- for dep_chain in "${Dependents[@]}"
- do is_hiorder_dep=$( (( $(tr '<' '\n' <<<${dep_chain} | wc -l) > 2 )) && echo 1 || echo 0 )
-
- if (( BE_VERBOSE ))
- then # display all transitive dependents
- echo " ${dep_chain/ /${SEP_CHAR}}"
- elif ! (( is_hiorder_dep ))
- then # display only first-order dependents
- via_pkg=$(sed 's|.*\] <- \([^ ]*\).*|\1|' <<<${dep_chain})
- repo_pkg=${dep_chain/ *}
- n_hiorder_deps=$(( ${HiorderDependents[${via_pkg}]} - 1 ))
- echo " ${repo_pkg}${SEP_CHAR}(${n_hiorder_deps} higher-order deps)"
- fi
- done | column --table --separator="${SEP_CHAR}" --table-wrap=2
+ if (( ${#ParabolaDependents[*]} ))
+ then Log "\ndirect$( ! (( BE_VERBOSE )) || echo " and transitive") parabola dependents:"
+ for dep_chain in "${ParabolaDependents[@]}"
+ do PrintDependent "${dep_chain}"
+ done | column --table --separator="${SEP_CHAR}" --table-wrap=2
+ fi
+
+ # report arch abs packages with some degree of run-time dependency
+ # on the input package or sodep
+ if (( BE_VERBOSE && ${#ArchDependents[@]} ))
+ then Log "\ndirect$( ! (( BE_VERBOSE )) || echo " and transitive") arch dependents:"
+ for dep_chain in "${ArchDependents[@]}"
+ do PrintDependent "${dep_chain}"
+ done | column --table --separator="${SEP_CHAR}" --table-wrap=2
+ else echo -e "\n(plus ${#ArchDependents[@]} arch dependents)"
+ fi
# report parabola abslibre packages with direct build-time dependency
# on the input package or sodep
@@ -237,15 +254,6 @@ PrintReport()
printf " %s\n" ${Makedependents[*]}
fi
- # report arch abs packages with direct run-time dependency
- # on the input package or sodep
- # TODO: report arch abs packages with some degree of build-time dependency
- if (( BE_VERBOSE && ${#Ignored[@]} ))
- then Log "\narch dependents:"
- printf " %s\n" "${Ignored[@]}"
- else echo -e "\n(plus ${#Ignored[@]} arch dependents)"
- fi
-
# TODO: report arch abs packages with some degree of build-time dependency
# on the input package or sodep
}