mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-05 20:42:26 +00:00
now the resolver client should install the retriever procedure.
This commit is contained in:
parent
db0a32e674
commit
f6a4c1f0bc
4 changed files with 11 additions and 8 deletions
2
makefile
2
makefile
|
|
@ -32,9 +32,9 @@ all:
|
|||
../src/vpkStorage.Mod \
|
||||
../src/vpkSyncer.Mod \
|
||||
../src/vpkdepTree.Mod \
|
||||
../src/vpkJsonDepRetriever.Mod \
|
||||
../src/vpkDot.Mod \
|
||||
../src/vpkResolver.Mod \
|
||||
../src/vpkJsonDepRetriever.Mod \
|
||||
../src/vpkInstaller.Mod \
|
||||
../src/vipack.Mod -m
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
MODULE vpkInstaller;
|
||||
IMPORT Out, StringList, vpkResolver, vpkdepTree, vpkDot, vpkSettings;
|
||||
IMPORT Out, StringList, vpkResolver, vpkdepTree, vpkDot, vpkSettings, vpkJsonDepRetriever;
|
||||
|
||||
PROCEDURE install*(VAR unit: ARRAY OF CHAR);
|
||||
VAR
|
||||
|
|
@ -9,7 +9,7 @@ VAR
|
|||
i : LONGINT;
|
||||
BEGIN
|
||||
Out.String("resolving dependencies...");
|
||||
tree := vpkResolver.resolve(unit);
|
||||
tree := vpkResolver.resolve(unit, vpkJsonDepRetriever.getDeps);
|
||||
Out.String(" done!"); Out.Ln;
|
||||
lst := vpkDot.tree2dot(tree);
|
||||
Out.String("dependency graph:"); Out.Ln;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
MODULE vpkResolver;
|
||||
IMPORT Out, StringList, vpkdepTree, vpkJsonDepRetriever;
|
||||
IMPORT Out, StringList, vpkdepTree;
|
||||
|
||||
TYPE
|
||||
Tdep = vpkdepTree.Tdep;
|
||||
|
|
@ -7,6 +7,8 @@ TYPE
|
|||
|
||||
TdepTree = vpkdepTree.TdepTree;
|
||||
|
||||
VAR rtvr: vpkdepTree.retriever;
|
||||
|
||||
PROCEDURE treeContains(VAR d: Tdep; VAR depTree: TdepTree): BOOLEAN;
|
||||
VAR
|
||||
res: BOOLEAN;
|
||||
|
|
@ -46,7 +48,7 @@ BEGIN
|
|||
t := met.GetByName(met, e.obj(StringList.TString).str^);
|
||||
IF t = NIL THEN
|
||||
t := vpkdepTree.CreateDep(e.obj(StringList.TString).str^);
|
||||
t.InstallRetriever(t, vpkJsonDepRetriever.getDeps);
|
||||
t.InstallRetriever(t, rtvr);
|
||||
END;
|
||||
deps[i] := t;
|
||||
IF ~treeContains(t, depTree) THEN
|
||||
|
|
@ -67,16 +69,17 @@ BEGIN
|
|||
depTree.Add(depTree, d);
|
||||
END mkDepTree;
|
||||
|
||||
PROCEDURE resolve*(first: ARRAY OF CHAR): TdepTree;
|
||||
PROCEDURE resolve*(first: ARRAY OF CHAR; r: vpkdepTree.retriever): TdepTree;
|
||||
VAR
|
||||
depTree: TdepTree;
|
||||
met: TdepTree;
|
||||
dep: Tdep;
|
||||
BEGIN
|
||||
rtvr := r;
|
||||
depTree := vpkdepTree.Create();
|
||||
met := vpkdepTree.Create(); (* for deps that we already met *)
|
||||
dep := vpkdepTree.CreateDep(first);
|
||||
dep.InstallRetriever(dep, vpkJsonDepRetriever.getDeps);
|
||||
dep.InstallRetriever(dep, rtvr);
|
||||
mkDepTree(dep, depTree, met);
|
||||
RETURN depTree
|
||||
END resolve;
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ TYPE
|
|||
deps- : Tdeps;
|
||||
Create* : PROCEDURE (VAR name: ARRAY OF CHAR): Tdep;
|
||||
AssignDeps* : PROCEDURE (VAR d: Tdep; VAR deps: Tdeps);
|
||||
RetrieveDeps* : retriever;
|
||||
RetrieveDeps- : retriever;
|
||||
InstallRetriever*: PROCEDURE(VAR d: Tdep; r: retriever);
|
||||
END;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue