From d09c629c5513a650e7dabf501f870a2c3031cb91 Mon Sep 17 00:00:00 2001 From: Einhard Leichtfuß Date: Mon, 23 Oct 2017 09:37:48 +0200 Subject: Create function to install the dep tree unfinished. --- auria.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/auria.sh b/auria.sh index d6b7a7e..b74a5fa 100755 --- a/auria.sh +++ b/auria.sh @@ -119,6 +119,7 @@ typeset retstr typeset -a repo_deps # dependencies in official repositories. typeset -A aur_deps # aur deps for each aur package (space sep.). +typeset -A aur_deps_test # copy of the above for dependency circle testing. typeset -A aur_revdeps # aur pkgs depending on an pkg, for each. typeset -A aur_itype # explicit / dep / update / "" typeset -A aur_pkgbase @@ -130,6 +131,7 @@ function reset_vars { repo_deps=() aur_deps=() + aur_deps_test=() aur_revdeps=() aur_itype=() aur_pkgbase=() @@ -481,11 +483,13 @@ function resolve_deps || return 4) ) aur_deps["$pkg"]="$(printf " %s " "${deps[@]}" "${makedeps[@]}")" + aur_deps_test["$pkg"]="${aur_deps["$pkg"]}" if [ ${#dep} -eq 0 ] then aur_pkgorder+=("$pkg") else + # Recurse. local dep for dep in "${deps[@]}" "${makedeps[@]}" do @@ -497,6 +501,33 @@ function resolve_deps fi } +function install_deptree +{ + local pkg + + # Use $@ in order to be able to use shift. + set "${aur_pkgorder[@]}" + + while [ $# -ne 0 ] + do + # Pop. + pkg="$1"; shift + + # TODO: install $pkg + + # Remove the resolved package off the dependency tree. + # Note, that the reverse dependencies do not require removal. + for revdep in "${aur_revdeps["$pkg"]}" + do + aur_deps["$revdep"]="${aur_deps["$revdep"]/ $pkg /}" + if test -z "${aur_deps["$revdep"]}" + then + aur_pkgorder+=("$revdep") + fi + done + done +} + # $1 package: name # $2 package: name [. pkgver-comparator . version string] function depsearch_noaur -- cgit v1.2.3