dependency tree gets populated.

This commit is contained in:
Norayr Chilingarian 2020-06-09 17:57:59 +04:00
parent 289c154f46
commit d8a2a9ddac
19 changed files with 229 additions and 707 deletions

76
src/vpkStorage.Mod Normal file
View file

@ -0,0 +1,76 @@
MODULE vpkStorage;
IMPORT Files, Out, Strings,
strutils, vpkLogger, vpkEnv, vpkFiles;
PROCEDURE WriteString(VAR r : Files.Rider; str : ARRAY OF CHAR);
BEGIN
Files.WriteBytes(r, str, Strings.Length(str));
END WriteString;
PROCEDURE fileToString*(VAR fileName: ARRAY OF CHAR; VAR returnString: strutils.pstring);
VAR
f: Files.File;
r: Files.Rider;
i, j: LONGINT;
BEGIN
returnString := NIL;
f := Files.Old(fileName);
IF f # NIL THEN
Files.Set(r, f, 0);
i := Files.Length(f);
NEW(returnString, i);
j := 0;
REPEAT
Files.Read(r, returnString^[j]);
INC(j);
UNTIL r.eof OR (j >= i);
ELSE
Out.String("file ");
Out.String(fileName);
Out.String(" not found");
Out.Ln;
END;
END fileToString;
PROCEDURE stringToFile*(VAR fileName, content: ARRAY OF CHAR): BOOLEAN;
VAR
f: Files.File;
r: Files.Rider;
i: LONGINT;
BEGIN
f := Files.New(fileName);
IF f = NIL THEN
vpkLogger.Log(fileName);
vpkLogger.Log(" not found");
vpkLogger.Ln;
RETURN FALSE
END;
Files.Set(r, f, 0);
vpkLogger.Log("Writing to file");
vpkLogger.Log(fileName);
vpkLogger.Log("-------------------");
WriteString(r, content);
Files.Register(f);
Files.Close(f);
RETURN TRUE;
END stringToFile;
PROCEDURE json2pstring*(VAR json: ARRAY OF CHAR; VAR pstr: strutils.pstring);
VAR
fi: vpkFiles.fileInfo;
BEGIN
pstr := NIL;
vpkEnv.getTreeDir(fi.name);
Strings.Append("/", fi.name);
Strings.Append(json, fi.name);
Strings.Append(".json", fi.name);
IF vpkFiles.Exists(fi) THEN
fileToString(fi.name, pstr);
END
END json2pstring;
END vpkStorage.