diff options
author | bill-auger <mr.j.spam.me@gmail.com> | 2022-09-19 15:52:03 -0400 |
---|---|---|
committer | bill-auger <mr.j.spam.me@gmail.com> | 2023-12-14 17:13:11 -0500 |
commit | 1312b69db7e5939befefae912677b43b21b40325 (patch) | |
tree | ae2bbb27e9a487699ab3242b5f241349984aa66a | |
parent | d775ea5e54844fe0006f7090e80e6c5fbc5eb8f6 (diff) |
[parabola-dependents]: wip
-rwxr-xr-x | parabola-dependents | 31 |
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 |