dependency resolution done!

This commit is contained in:
Norayr Chilingarian 2020-06-09 20:37:36 +04:00
parent d36843e1f4
commit f2fb8651b3
3 changed files with 19 additions and 3 deletions

2
lists

@ -1 +1 @@
Subproject commit 08d93de0618077d9ebae98397f191613a4f46120
Subproject commit 8bd436755e98807041cd19e9356c7cedb25dd5e9

View file

@ -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;

View file

@ -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;