mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-06 13:02: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/vpkStorage.Mod \
|
||||||
../src/vpkSyncer.Mod \
|
../src/vpkSyncer.Mod \
|
||||||
../src/vpkdepTree.Mod \
|
../src/vpkdepTree.Mod \
|
||||||
../src/vpkJsonDepRetriever.Mod \
|
|
||||||
../src/vpkDot.Mod \
|
../src/vpkDot.Mod \
|
||||||
../src/vpkResolver.Mod \
|
../src/vpkResolver.Mod \
|
||||||
|
../src/vpkJsonDepRetriever.Mod \
|
||||||
../src/vpkInstaller.Mod \
|
../src/vpkInstaller.Mod \
|
||||||
../src/vipack.Mod -m
|
../src/vipack.Mod -m
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
MODULE vpkInstaller;
|
MODULE vpkInstaller;
|
||||||
IMPORT Out, StringList, vpkResolver, vpkdepTree, vpkDot, vpkSettings;
|
IMPORT Out, StringList, vpkResolver, vpkdepTree, vpkDot, vpkSettings, vpkJsonDepRetriever;
|
||||||
|
|
||||||
PROCEDURE install*(VAR unit: ARRAY OF CHAR);
|
PROCEDURE install*(VAR unit: ARRAY OF CHAR);
|
||||||
VAR
|
VAR
|
||||||
|
|
@ -9,7 +9,7 @@ VAR
|
||||||
i : LONGINT;
|
i : LONGINT;
|
||||||
BEGIN
|
BEGIN
|
||||||
Out.String("resolving dependencies...");
|
Out.String("resolving dependencies...");
|
||||||
tree := vpkResolver.resolve(unit);
|
tree := vpkResolver.resolve(unit, vpkJsonDepRetriever.getDeps);
|
||||||
Out.String(" done!"); Out.Ln;
|
Out.String(" done!"); Out.Ln;
|
||||||
lst := vpkDot.tree2dot(tree);
|
lst := vpkDot.tree2dot(tree);
|
||||||
Out.String("dependency graph:"); Out.Ln;
|
Out.String("dependency graph:"); Out.Ln;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
MODULE vpkResolver;
|
MODULE vpkResolver;
|
||||||
IMPORT Out, StringList, vpkdepTree, vpkJsonDepRetriever;
|
IMPORT Out, StringList, vpkdepTree;
|
||||||
|
|
||||||
TYPE
|
TYPE
|
||||||
Tdep = vpkdepTree.Tdep;
|
Tdep = vpkdepTree.Tdep;
|
||||||
|
|
@ -7,6 +7,8 @@ TYPE
|
||||||
|
|
||||||
TdepTree = vpkdepTree.TdepTree;
|
TdepTree = vpkdepTree.TdepTree;
|
||||||
|
|
||||||
|
VAR rtvr: vpkdepTree.retriever;
|
||||||
|
|
||||||
PROCEDURE treeContains(VAR d: Tdep; VAR depTree: TdepTree): BOOLEAN;
|
PROCEDURE treeContains(VAR d: Tdep; VAR depTree: TdepTree): BOOLEAN;
|
||||||
VAR
|
VAR
|
||||||
res: BOOLEAN;
|
res: BOOLEAN;
|
||||||
|
|
@ -46,7 +48,7 @@ BEGIN
|
||||||
t := met.GetByName(met, e.obj(StringList.TString).str^);
|
t := met.GetByName(met, e.obj(StringList.TString).str^);
|
||||||
IF t = NIL THEN
|
IF t = NIL THEN
|
||||||
t := vpkdepTree.CreateDep(e.obj(StringList.TString).str^);
|
t := vpkdepTree.CreateDep(e.obj(StringList.TString).str^);
|
||||||
t.InstallRetriever(t, vpkJsonDepRetriever.getDeps);
|
t.InstallRetriever(t, rtvr);
|
||||||
END;
|
END;
|
||||||
deps[i] := t;
|
deps[i] := t;
|
||||||
IF ~treeContains(t, depTree) THEN
|
IF ~treeContains(t, depTree) THEN
|
||||||
|
|
@ -67,16 +69,17 @@ BEGIN
|
||||||
depTree.Add(depTree, d);
|
depTree.Add(depTree, d);
|
||||||
END mkDepTree;
|
END mkDepTree;
|
||||||
|
|
||||||
PROCEDURE resolve*(first: ARRAY OF CHAR): TdepTree;
|
PROCEDURE resolve*(first: ARRAY OF CHAR; r: vpkdepTree.retriever): TdepTree;
|
||||||
VAR
|
VAR
|
||||||
depTree: TdepTree;
|
depTree: TdepTree;
|
||||||
met: TdepTree;
|
met: TdepTree;
|
||||||
dep: Tdep;
|
dep: Tdep;
|
||||||
BEGIN
|
BEGIN
|
||||||
|
rtvr := r;
|
||||||
depTree := vpkdepTree.Create();
|
depTree := vpkdepTree.Create();
|
||||||
met := vpkdepTree.Create(); (* for deps that we already met *)
|
met := vpkdepTree.Create(); (* for deps that we already met *)
|
||||||
dep := vpkdepTree.CreateDep(first);
|
dep := vpkdepTree.CreateDep(first);
|
||||||
dep.InstallRetriever(dep, vpkJsonDepRetriever.getDeps);
|
dep.InstallRetriever(dep, rtvr);
|
||||||
mkDepTree(dep, depTree, met);
|
mkDepTree(dep, depTree, met);
|
||||||
RETURN depTree
|
RETURN depTree
|
||||||
END resolve;
|
END resolve;
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ TYPE
|
||||||
deps- : Tdeps;
|
deps- : Tdeps;
|
||||||
Create* : PROCEDURE (VAR name: ARRAY OF CHAR): Tdep;
|
Create* : PROCEDURE (VAR name: ARRAY OF CHAR): Tdep;
|
||||||
AssignDeps* : PROCEDURE (VAR d: Tdep; VAR deps: Tdeps);
|
AssignDeps* : PROCEDURE (VAR d: Tdep; VAR deps: Tdeps);
|
||||||
RetrieveDeps* : retriever;
|
RetrieveDeps- : retriever;
|
||||||
InstallRetriever*: PROCEDURE(VAR d: Tdep; r: retriever);
|
InstallRetriever*: PROCEDURE(VAR d: Tdep; r: retriever);
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue