can be compiled, syncs tree. needs check for bugs.

This commit is contained in:
Norayr Chilingarian 2020-05-09 01:19:17 +04:00
parent 7a741b509a
commit 163102bd19
15 changed files with 264 additions and 216 deletions

View file

@ -1,49 +1,25 @@
MODULE vpkSyncer;
IMPORT Strings, Out,
vpkSettings, vpkConf, vpkFsHelper, vpkFileManager, vpkJsonParser, vpkGit;
vpkSettings, vpkEnv, vpkConf, vpkFiles, vpkGit;
PROCEDURE mkTreePath(VAR path: ARRAY OF CHAR);
BEGIN
vpkConf.getConfDir(path);
vpkEnv.getConfDir(path);
Strings.Append('/', path);
Strings.Append(vpkSettings.vpkTreeDir, path);
END mkTreePath;
PROCEDURE sync*;
VAR
dir : vpkFsHelper.fileInfo;
jsonData: ARRAY 256 OF CHAR;
jsonURL: ARRAY 64 OF CHAR;
jsonType: ARRAY 8 OF CHAR;
b: BOOLEAN;
confPath, treePath : ARRAY 256 OF CHAR;
jsonRecord : vpkJsonParser.JsonTypePointer;
tree: vpkSettings.tree;
BEGIN
mkTreePath(treePath);
Out.String("*****************************************"); Out.Ln;
Out.String("TreePath = "); Out.String(treePath); Out.Ln;
(* Check tree directory if doesn't exist create*)
dir.name := treePath;
IF ~vpkFsHelper.Exists(dir) THEN
Out.String(treePath); Out.String(" directory doesn't exist, creating"); Out.Ln;
b := vpkFsHelper.mkDir(treePath);
END;
IF ~(vpkFsHelper.dir IN dir.attr) THEN
Out.String(treePath); Out.String(" exists but is not a directory"); Out.Ln;
HALT(1);
END;
(* Syncing *)
vpkConf.getConfPath(confPath);
b := vpkFileManager.Read(confPath, jsonData);
jsonRecord := vpkJsonParser.Create(jsonData);
b := vpkJsonParser.GetTerminal(jsonRecord, vpkSettings.confTermPath, jsonURL);
Out.String("URL = "); Out.String(jsonURL); Out.Ln;
b := vpkJsonParser.GetTerminal(jsonRecord, vpkSettings.confType, jsonType);
IF jsonType = vpkSettings.confTypGit THEN
vpkGit.pull(jsonURL, treePath)
ELSE
Out.String("not a git url"); Out.Ln
END;
vpkConf.getConfigTreeVal(tree);
IF tree.typ = vpkSettings.git THEN
vpkGit.syncTree(tree.url)
ELSE
Out.String("TODO: not a git url"); Out.Ln
END;
END sync;
END vpkSyncer.