downloads deps too.

This commit is contained in:
Norayr Chilingarian 2024-02-02 02:41:53 +04:00
parent e1af944d0b
commit b0b330ffd9
2 changed files with 47 additions and 75 deletions

View file

@ -74,100 +74,72 @@ BEGIN
END; END;
RETURN b; RETURN b;
END getBuildInfo; END getBuildInfo;
(*
PROCEDURE getURIandType*(VAR d: vpkdepTree.Tdep; VAR URI: ARRAY OF CHAR; VAR type: ARRAY OF CHAR; VAR branch: ARRAY OF CHAR);
VAR
jsonRecord, remote: vpkJsonParser.JsonTypePointer;
p: strUtils.pstring;
k, v: StringList.pstring;
keys, values: StringList.TStringList;
i: LONGINT;
BEGIN
strUtils.zeroStr(URI);
strUtils.zeroStr(type);
strUtils.zeroStr(branch);
p := NIL;
vpkStorage.json2pstring(d.name^, p);
IF p # NIL THEN
jsonRecord := vpkJsonParser.Create(p^);
remote := jsonRecord.GetNonTerminal(jsonRecord, vpkSettings.rmtType);
IF remote # NIL THEN
keys := NIL; values := NIL;
remote.GetTerminalKeys(remote, keys);
remote.GetTerminalValues(remote, values);
i := 0;
REPEAT
k := keys.GetString(keys, i);
v := values.GetString(values, i);
IF k^ = vpkSettings.rmtTypKey THEN COPY(v^, type) END;
IF k^ = vpkSettings.rmtTreeKey THEN COPY(v^, URI) END;
IF k^ = vpkSettings.rmtTreeBranchKey THEN COPY(v^, branch) END;
INC(i);
UNTIL i = keys.Count - 1;
ELSE
Out.String("malformed json: no 'Remote' section"); Out.Ln;
HALT(63);
END
ELSE
Out.String("no json file for "); Out.String(d.name^); Out.Ln;
Out.String("program is not expected to pass unexistent name, something is wrong in other module"); Out.Ln;
HALT(64);
END
END getURIandType;
*)
PROCEDURE getURIandType*(VAR d: vpkdepTree.Tdep; VAR URI: ARRAY OF CHAR; VAR type: ARRAY OF CHAR; VAR branch: ARRAY OF CHAR); PROCEDURE getURIandType*(VAR d: vpkdepTree.Tdep; VAR URI: ARRAY OF CHAR; VAR type: ARRAY OF CHAR; VAR branch: ARRAY OF CHAR);
VAR VAR
jsonstr, errstr: strUtils.pstring; jsonstr, errstr: strUtils.pstring;
tree, remoteValue, uriValue, typeValue, branchValue: Json.Value; tree, singleValue, remoteValue, uriValue, typeValue, branchValue: Json.Value;
rootObj, remoteObj: Json.Obj; rootObj, someObj, remoteObj: Json.Obj;
err: ARRAY ErrmessSize OF CHAR; err: ARRAY ErrmessSize OF CHAR;
b: BOOLEAN; b, fndRemSec: BOOLEAN;
u, t, br, remote: Json.jString; key, val, u, t, br, remote: Json.jString;
BEGIN BEGIN
Out.String("ENTERED GET URI AND TYPE"); Out.Ln;
strUtils.zeroStr(URI); strUtils.zeroStr(URI);
strUtils.zeroStr(type); strUtils.zeroStr(type);
strUtils.zeroStr(branch); strUtils.zeroStr(branch);
jsonstr := NIL; jsonstr := NIL;
vpkStorage.json2pstring(d.name^, jsonstr); vpkStorage.json2pstring(d.name^, jsonstr);
IF jsonstr # NIL THEN IF jsonstr # NIL THEN
Out.String("JSONSTR # NIL"); Out.Ln;
NEW(errstr, ErrmessSize); NEW(errstr, ErrmessSize);
b := Json.Parse(tree, jsonstr^, err); b := Json.Parse(tree, jsonstr^, err);
IF b THEN IF b THEN
Out.String("b IS TRUE"); Out.Ln;
IF tree IS Json.Obj THEN IF tree IS Json.Obj THEN
Out.String("tree IS Json.Obj"); Out.Ln;
rootObj := tree(Json.Obj); rootObj := tree(Json.Obj);
NEW(u, Strings.Length(vpkSettings.rmtTreeKey) + 1); COPY(vpkSettings.rmtTreeKey, u^); NEW(u, Strings.Length(vpkSettings.rmtTreeKey) + 1); COPY(vpkSettings.rmtTreeKey, u^);
NEW(t, Strings.Length(vpkSettings.rmtTypKey) + 1); COPY(vpkSettings.rmtTypKey, t^); NEW(t, Strings.Length(vpkSettings.rmtTypKey) + 1); COPY(vpkSettings.rmtTypKey, t^);
NEW(br, Strings.Length(vpkSettings.rmtTreeBranchKey) + 1); COPY(vpkSettings.rmtTreeBranchKey, br^); NEW(br, Strings.Length(vpkSettings.rmtTreeBranchKey) + 1); COPY(vpkSettings.rmtTreeBranchKey, br^);
NEW(remote, Strings.Length(vpkSettings.rmtType)+1); NEW(remote, Strings.Length(vpkSettings.rmtType)+1);
COPY(vpkSettings.rmtType, remote^); COPY(vpkSettings.rmtType, remote^);
IF Json.ObjSelect(remoteValue, rootObj, remote) THEN fndRemSec := FALSE;
Out.String("REMOTE FOUND"); Out.Ln; REPEAT
IF remoteValue IS Json.Obj THEN IF rootObj.name^ = remote^ THEN
remoteObj := remoteValue(Json.Obj); fndRemSec := TRUE;
IF Json.ObjSelect(uriValue, remoteObj, u) THEN Out.String("REMOTE SECT FOUND"); Out.Ln;
IF uriValue IS Json.Str THEN
COPY(uriValue(Json.Str).str^, URI);
Out.String("URI IS "); Out.String(uriValue(Json.Str).str^); Out.Ln;
END;
END;
IF Json.ObjSelect(typeValue, remoteObj, t) THEN
IF typeValue IS Json.Str THEN
COPY(typeValue(Json.Str).str^, type);
Out.String("TYPE VALUE "); Out.String(typeValue(Json.Str).str^);
Out.Ln;
END;
END;
IF Json.ObjSelect(branchValue, remoteObj, br) THEN
IF branchValue IS Json.Str THEN
COPY(branchValue(Json.Str).str^, branch);
Out.String("BRANCH ");
Out.String(branchValue(Json.Str).str^); Out.Ln;
END;
END;
ELSE
Out.String("Remote section is not an object."); Out.Ln;
END; END;
IF ~fndRemSec THEN rootObj := rootObj.next END
UNTIL (rootObj = NIL) OR fndRemSec;
Out.String("exited the loop");
IF fndRemSec THEN
WHILE rootObj # NIL DO
Out.String("entered while rootobj # nil"); Out.Ln;
Out.String("rootobj.name "); Out.String(rootObj.name^); Out.Ln;
remoteValue := rootObj.value;
IF remoteValue IS Json.Obj THEN
Out.String(" remotevalue is jsonobj"); Out.Ln;
singleValue := remoteValue(Json.Obj);
WHILE singleValue # NIL DO
IF singleValue IS Json.Obj THEN
Out.String("singlevalue is jsonobj"); Out.Ln;
someObj := singleValue(Json.Obj);
key := someObj.name;
Out.String("key is "); Out.String(key^); Out.Ln;
val := someObj.value(Json.Str).str;
Out.String("val is "); Out.String(val^); Out.Ln;
Out.Ln;
IF key^ = vpkSettings.rmtTypKey THEN COPY(val^, type) END;
IF key^ = vpkSettings.rmtTreeBranchKey THEN COPY(val^, branch) END;
IF key^ = vpkSettings.rmtTreeKey THEN COPY(val^, URI) END;
END; (* if singlevalue is json.obj *)
singleValue := someObj.next;
END (* while singlevalue # nil *)
END; (* if remotevalue is json.obj *)
rootObj := rootObj.next
END; (* while rootObj # NIL *)
ELSE ELSE
Out.String("Remote section not found."); Out.Ln; Out.String("Remote section not found."); Out.Ln;
END; END;