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 #git submodule update
mkdir -p $(build_dir_path) mkdir -p $(build_dir_path)
cd $(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/Internet/makefile BUILD=$(build_dir_path)
gmake -f $(mkfile_dir_path)/dps/time/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/opts/Makefile BUILD=$(build_dir_path)
cd $(build_dir_path) && \ cd $(build_dir_path) && \
$(VOC) -s \ $(VOC) -s \
../src/vpkSettings.Mod \ ../src/vpkSettings.Mod \

View file

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

View file

@ -53,6 +53,7 @@ VAR
jsonRecord : vpkJsonParser.JsonTypePointer; jsonRecord : vpkJsonParser.JsonTypePointer;
b: BOOLEAN; b: BOOLEAN;
treeTyp: ARRAY 8 OF CHAR; treeTyp: ARRAY 8 OF CHAR;
branch: ARRAY 128 OF CHAR;
BEGIN BEGIN
f := vpkEnv.getConfFile(); f := vpkEnv.getConfFile();
Files.Set(r, f, 0); 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 ~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 IF treeTyp = vpkSettings.rmtTypGitVal THEN
tree.typ := vpkSettings.git; 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 ELSIF treeTyp = vpkSettings.rmtTypHttpVal THEN
tree.typ := vpkSettings.http tree.typ := vpkSettings.http
ELSE ELSE

View file

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

View file

@ -28,7 +28,7 @@ BEGIN
END; END;
END getBuildInfo; 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 VAR
jsonRecord, remote: vpkJsonParser.JsonTypePointer; jsonRecord, remote: vpkJsonParser.JsonTypePointer;
p: strutils.pstring; p: strutils.pstring;
@ -51,6 +51,7 @@ BEGIN
v := values.GetString(values, i); v := values.GetString(values, i);
IF k^ = vpkSettings.rmtTypKey THEN COPY(v^, type) END; IF k^ = vpkSettings.rmtTypKey THEN COPY(v^, type) END;
IF k^ = vpkSettings.rmtTreeKey THEN COPY(v^, URI) END; IF k^ = vpkSettings.rmtTreeKey THEN COPY(v^, URI) END;
IF k^ = vpkSettings.rmtTreeBranchKey THEN COPY(v^, branch) END;
INC(i); INC(i);
UNTIL i = keys.Count - 1; UNTIL i = keys.Count - 1;
ELSE ELSE

View file

@ -17,6 +17,7 @@ CONST
rmtTypHttpsVal* = "https"; rmtTypHttpsVal* = "https";
rmtTypGemiVal* = "gemini"; rmtTypGemiVal* = "gemini";
rmtTreeKey* = "path"; rmtTreeKey* = "path";
rmtTreeBranchKey* = "branch";
bldType* = "Build"; bldType* = "Build";
(*defTreeVal* = "https://github.com/vishaps/vipackTree";*) (*defTreeVal* = "https://github.com/vishaps/vipackTree";*)
defTreeVal* = "git@github.com:vishaps/vipackTree"; defTreeVal* = "git@github.com:vishaps/vipackTree";
@ -38,7 +39,8 @@ CONST
TYPE TYPE
tree* = RECORD tree* = RECORD
url* : ARRAY 128 OF CHAR; url* : ARRAY 128 OF CHAR;
typ* : SHORTINT typ* : SHORTINT;
branch*: ARRAY 128 OF CHAR;
END; END;

View file

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