added branch concept. vipack now can pull for branch.

This commit is contained in:
Norayr Chilingarian 2022-06-30 05:41:50 +04:00
parent 0990748ecb
commit 8ff51322f4
7 changed files with 39 additions and 31 deletions

View file

@ -17,10 +17,10 @@ all: deps
#git submodule update
mkdir -p $(build_dir_path)
cd $(build_dir_path)
gmake -f $(mkfile_dir_path)/dps/lists/makefile BUILD=$(build_dir_path)
gmake -f $(mkfile_dir_path)/dps/lists/Makefile BUILD=$(build_dir_path)
gmake -f $(mkfile_dir_path)/dps/Internet/makefile BUILD=$(build_dir_path)
gmake -f $(mkfile_dir_path)/dps/time/makefile BUILD=$(build_dir_path)
gmake -f $(mkfile_dir_path)/dps/opts/makefile BUILD=$(build_dir_path)
gmake -f $(mkfile_dir_path)/dps/time/Makefile BUILD=$(build_dir_path)
gmake -f $(mkfile_dir_path)/dps/opts/Makefile BUILD=$(build_dir_path)
cd $(build_dir_path) && \
$(VOC) -s \
../src/vpkSettings.Mod \

View file

@ -1,7 +1,7 @@
MODULE vpkGit;
IMPORT Out, Strings, Platform, vpkEnv;
PROCEDURE pull*(url : ARRAY OF CHAR; dst : ARRAY OF CHAR);
PROCEDURE pull*(url : ARRAY OF CHAR; dst : ARRAY OF CHAR; branch: ARRAY OF CHAR);
VAR i : INTEGER;
cmd : ARRAY 2048 OF CHAR;
BEGIN
@ -13,20 +13,22 @@ BEGIN
Strings.Append(dst, cmd);
Strings.Append(" pull ", cmd);
Strings.Append(url, cmd);
Strings.Append(" ", cmd);
Strings.Append(branch, cmd);
i := Platform.System(cmd);
END pull;
PROCEDURE syncTree*(url: ARRAY OF CHAR);
PROCEDURE syncTree*(url, branch: ARRAY OF CHAR);
VAR
tmp: ARRAY 256 OF CHAR;
BEGIN
vpkEnv.getTreeDir(tmp);
pull(url, tmp);
pull(url, tmp, branch);
END syncTree;
PROCEDURE fetchRepo*(url: ARRAY OF CHAR; dst: ARRAY OF CHAR);
PROCEDURE fetchRepo*(url: ARRAY OF CHAR; dst, branch: ARRAY OF CHAR);
BEGIN
pull(url, dst);
pull(url, dst, branch);
END fetchRepo;
END vpkGit.

View file

@ -53,6 +53,7 @@ VAR
jsonRecord : vpkJsonParser.JsonTypePointer;
b: BOOLEAN;
treeTyp: ARRAY 8 OF CHAR;
branch: ARRAY 128 OF CHAR;
BEGIN
f := vpkEnv.getConfFile();
Files.Set(r, f, 0);
@ -66,6 +67,8 @@ BEGIN
IF ~b THEN Out.String("unable to read "); Out.String (vpkSettings.rmtTypKey); Out.String(" from json"); Out.Ln; HALT(1); END;
IF treeTyp = vpkSettings.rmtTypGitVal THEN
tree.typ := vpkSettings.git;
b := vpkJsonParser.GetTerminal(jsonRecord, vpkSettings.rmtTreeBranchKey, branch);
IF ~b THEN COPY("", tree.branch) ELSE COPY(branch, tree.branch) END;
ELSIF treeTyp = vpkSettings.rmtTypHttpVal THEN
tree.typ := vpkSettings.http
ELSE

View file

@ -44,7 +44,7 @@ VAR
depTree: vpkdepTree.TdepTree;
dep: vpkdepTree.Tdep;
i: LONGINT;
URI: ARRAY 128 OF CHAR;
URI, branch: ARRAY 128 OF CHAR;
typ: ARRAY 16 OF CHAR;
BEGIN
depTree := resolve(package);
@ -52,8 +52,8 @@ BEGIN
i := 0;
REPEAT
dep := vpkdepTree.Get(depTree, i);
vpkJsonDepRetriever.getURIandType(dep, URI, typ);
vpkSyncer.fetch(dep.name^, URI, typ, prefix);
vpkJsonDepRetriever.getURIandType(dep, URI, typ, branch);
vpkSyncer.fetch(dep.name^, URI, typ, prefix, branch);
INC(i)
UNTIL i = depTree.Count;
END fetch;
@ -63,7 +63,7 @@ VAR
depTree: vpkdepTree.TdepTree;
dep: vpkdepTree.Tdep;
i, j: LONGINT;
URI: ARRAY 128 OF CHAR;
URI, branch: ARRAY 128 OF CHAR;
typ: ARRAY 16 OF CHAR;
keys, values: StringList.TStringList;
k, v: StringList.pstring;
@ -81,8 +81,8 @@ BEGIN
i := 0;
REPEAT
dep := vpkdepTree.Get(depTree, i);
vpkJsonDepRetriever.getURIandType(dep, URI, typ);
vpkSyncer.fetch(dep.name^, URI, typ, prefix);
vpkJsonDepRetriever.getURIandType(dep, URI, typ, branch);
vpkSyncer.fetch(dep.name^, URI, typ, prefix, branch);
b := FALSE;
b := vpkJsonDepRetriever.getBuildInfo(dep, keys, values);
IF b THEN

View file

@ -28,7 +28,7 @@ BEGIN
END;
END getBuildInfo;
PROCEDURE getURIandType*(VAR d: vpkdepTree.Tdep; VAR URI: ARRAY OF CHAR; VAR type: 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
jsonRecord, remote: vpkJsonParser.JsonTypePointer;
p: strutils.pstring;
@ -51,6 +51,7 @@ BEGIN
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

View file

@ -10,18 +10,19 @@ CONST
graphName* = "deps.dot";
rmtType* = "Remote";
rmtTypKey* = "type";
rmtTypGitVal* = "git";
rmtTypHttpVal* = "http";
rmtTypHttpsVal* = "https";
rmtTypGemiVal* = "gemini";
rmtTreeKey* = "path";
bldType* = "Build";
(*defTreeVal* = "https://github.com/vishaps/vipackTree";*)
defTreeVal* = "git@github.com:vishaps/vipackTree";
confTreeVal* = defTreeVal;
defTypVal* = rmtTypGitVal;
rmtType* = "Remote";
rmtTypKey* = "type";
rmtTypGitVal* = "git";
rmtTypHttpVal* = "http";
rmtTypHttpsVal* = "https";
rmtTypGemiVal* = "gemini";
rmtTreeKey* = "path";
rmtTreeBranchKey* = "branch";
bldType* = "Build";
(*defTreeVal* = "https://github.com/vishaps/vipackTree";*)
defTreeVal* = "git@github.com:vishaps/vipackTree";
confTreeVal* = defTreeVal;
defTypVal* = rmtTypGitVal;
pkgTypKey* = "Package";
depTypKey* = "Dependencies";
@ -38,7 +39,8 @@ CONST
TYPE
tree* = RECORD
url* : ARRAY 128 OF CHAR;
typ* : SHORTINT
typ* : SHORTINT;
branch*: ARRAY 128 OF CHAR;
END;

View file

@ -16,13 +16,13 @@ BEGIN
(* Syncing *)
vpkConf.getConfigTreeVal(tree);
IF tree.typ = vpkSettings.git THEN
vpkGit.syncTree(tree.url)
vpkGit.syncTree(tree.url, tree.branch)
ELSE
Out.String("TODO: not a git url"); Out.Ln
END;
END sync;
PROCEDURE fetch*(name, url, typ, dst: ARRAY OF CHAR);
PROCEDURE fetch*(name, url, typ, dst, branch: ARRAY OF CHAR);
BEGIN
IF dst = "" THEN
vpkEnv.mkdefPkgDirPath(name, dst);
@ -31,7 +31,7 @@ BEGIN
END;
IF typ = vpkSettings.rmtTypGitVal THEN
vpkGit.fetchRepo(url, dst);
vpkGit.fetchRepo(url, dst, branch);
ELSE
Out.String("TODO: not a git url"); Out.Ln
END