From f2fb8651b357ab108c04d90b923b125ed910753e Mon Sep 17 00:00:00 2001 From: Norayr Chilingarian Date: Tue, 9 Jun 2020 20:37:36 +0400 Subject: [PATCH] dependency resolution done! --- lists | 2 +- src/vipack.Mod | 1 - src/vpkInstaller.Mod | 19 ++++++++++++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/lists b/lists index 08d93de..8bd4367 160000 --- a/lists +++ b/lists @@ -1 +1 @@ -Subproject commit 08d93de0618077d9ebae98397f191613a4f46120 +Subproject commit 8bd436755e98807041cd19e9356c7cedb25dd5e9 diff --git a/src/vipack.Mod b/src/vipack.Mod index d131488..0135e47 100644 --- a/src/vipack.Mod +++ b/src/vipack.Mod @@ -36,7 +36,6 @@ BEGIN IF command = "install" THEN Texts.Scan(S); unit := S.s; - Out.String("argument is "); Out.String(unit);Out.Ln; vpkInstaller.install(unit); END; diff --git a/src/vpkInstaller.Mod b/src/vpkInstaller.Mod index 5bec636..5117634 100644 --- a/src/vpkInstaller.Mod +++ b/src/vpkInstaller.Mod @@ -1,14 +1,31 @@ MODULE vpkInstaller; -IMPORT StringList, vpkResolver, vpkdepTree, vpkDot, vpkSettings; +IMPORT Out, StringList, vpkResolver, vpkdepTree, vpkDot, vpkSettings; PROCEDURE install*(VAR unit: ARRAY OF CHAR); VAR tree: vpkdepTree.TdepTree; lst: StringList.TStringList; + dep: vpkdepTree.Tdep; + i : LONGINT; BEGIN + Out.String("resolving dependencies..."); tree := vpkResolver.resolve(unit); + Out.String(" done!"); Out.Ln; lst := vpkDot.tree2dot(tree); + Out.String("dependency graph:"); Out.Ln; + Out.String("-----------------"); Out.Ln; + StringList.DumpOut(lst); lst.Dump(lst, vpkSettings.graphName); + Out.String("-----------------"); Out.Ln; + Out.String("(use 'dot -Tpng deps.dot > deps.png' to get the graph image)"); Out.Ln; Out.Ln; + Out.String("dependencies will be installed in the following order:"); Out.Ln; + i := 1; + REPEAT + dep := vpkdepTree.Get(tree, i); + Out.String(dep.name^); Out.Ln; + INC(i) + UNTIL i = tree.Count; + END install;