summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2022-09-19 15:52:03 -0400
committerbill-auger <mr.j.spam.me@gmail.com>2023-12-14 17:13:11 -0500
commit1312b69db7e5939befefae912677b43b21b40325 (patch)
treeae2bbb27e9a487699ab3242b5f241349984aa66a
parentd775ea5e54844fe0006f7090e80e6c5fbc5eb8f6 (diff)
[parabola-dependents]: wip
-rwxr-xr-xparabola-dependents31
1 files changed, 16 insertions, 15 deletions
diff --git a/parabola-dependents b/parabola-dependents
index a348bc0..09f1400 100755
--- a/parabola-dependents
+++ b/parabola-dependents
@@ -168,7 +168,7 @@ IsFirstOrderDep() # ("dep_chain")
PrintDependent() # ("dep_chain")
{
local dep_chain="$@"
- local via_pkg repo_pkg
+ local dep_pkg via_pkg
declare -i n_hiorder_deps
if (( BE_VERBOSE ))
@@ -176,11 +176,13 @@ PrintDependent() # ("dep_chain")
echo " ${dep_chain/ /${SEP_CHAR}}"
elif IsFirstOrderDep "${dep_chain}"
then # display only first-order dependents
+ dep_pkg=$(sed 's|.*<- ||' <<<${dep_chain})
via_pkg=$(sed 's|.*\] <- \([^ ]*\).*|\1|' <<<${dep_chain})
- repo_pkg=${dep_chain/ *}
- n_hiorder_deps=$( tr ' ' '\n' <<<${HiorderDependents[${via_pkg}]} | wc -l )
- echo " ${repo_pkg}${SEP_CHAR}(plus ${n_hiorder_deps} higher-order deps)"
-DBG "PrintDependent() via_pkg=$via_pkg HiorderDependents='${HiorderDependents[${via_pkg}]}'"
+ n_hiorder_deps=$( awk '{print NF}' <<<${HiorderDependents[${via_pkg}]} )
+
+ echo -n " ${dep_pkg}${SEP_CHAR}"
+ (( n_hiorder_deps )) && echo "(plus ${n_hiorder_deps} higher-order deps)" || echo
+# DBG "PrintDependent() via_pkg=$via_pkg HiorderDependents='${HiorderDependents[${via_pkg}]}'"
fi
}
@@ -195,7 +197,8 @@ Init()
su $(logname) -c "mktemp -d -p /tmp -t ${TEMP_DB_NAME}.XXX" )"
readonly CFG_FILE=${DB_DIR}/pacman-all.conf
readonly PACMAN_OPTS="--dbpath=${DB_DIR} --config=${CFG_FILE}"
- readonly PACTREE_OPTS="${PACMAN_OPTS} --sync --reverse --unique --chain"
+# readonly PACTREE_OPTS="${PACMAN_OPTS} --sync --reverse --unique --chain"
+ readonly PACTREE_OPTS="${PACMAN_OPTS} --sync --reverse --chain"
# TODO: `pactree --chain` is an unpublished custom feature
export PATH="/code/pacman-contrib/src:${PATH}"
@@ -242,7 +245,7 @@ export PATH="/code/pacman-contrib/src:${PATH}"
CollectResults()
{
- local dep_chains n_results dep_chain dep_pkg via_pkg repos repo repo_pkg
+ local dep_chains n_results dep_chain dep_pkg via_pkg repos repo
# query database for dependents
Log "querying database ...."
@@ -265,16 +268,14 @@ DBG "CollectResults() ArchMakedependents=${ArchMakedependents[*]}"
via_pkg=$(sed 's|.*\] <- \([^ ]*\).*|\1|' <<<${dep_chain})
repos="$(pacman ${PACMAN_OPTS} -Si ${dep_pkg} | grep Repository | \
cut -d ':' -f 2 | tr -d ' ' )"
-
for repo in ${repos}
- do repo_pkg=${repo}/${dep_pkg}
- if IsArchRepo ${repo}
- then ArchDependents+=( "${repo_pkg} ${dep_chain}" )
- else ParabolaDependents+=( "${repo_pkg} ${dep_chain}" )
+ do if IsArchRepo ${repo}
+ then ArchDependents+=( "${dep_chain}" )
+ else ParabolaDependents+=( "${dep_chain}" )
fi
if ! IsFirstOrderDep "${dep_chain}"
- then hiorder_deps="$(echo ${HiorderDependents[${via_pkg}]} ${repo_pkg})"
- HiorderDependents[${via_pkg}]="${hiorder_deps}"
+ then hiorder_deps="${HiorderDependents[${via_pkg}]} ${repo}/${dep_pkg}"
+ HiorderDependents[${via_pkg}]="$(echo ${hiorder_deps})"
fi
done
done
@@ -315,7 +316,7 @@ PrintReport()
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)"
+ else echo -e "\n(${#ArchDependents[@]} arch dependents)"
fi
# report parabola abslibre packages with some degree of build-time dependency