mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-05 20:42:26 +00:00
pushes to the 'deps' directory inside prefix.
This commit is contained in:
parent
837ee3ac45
commit
277e8aa9a5
4 changed files with 68 additions and 16 deletions
|
|
@ -12,6 +12,16 @@ BEGIN
|
|||
END;
|
||||
END getHome;
|
||||
|
||||
PROCEDURE createIfNotThere*(VAR fileName: ARRAY OF CHAR);
|
||||
BEGIN
|
||||
IF ~vpkFiles.ExistsByName(fileName) THEN
|
||||
IF ~vpkFiles.mkDir(fileName) THEN
|
||||
Out.String("failed to create directory "); Out.String(fileName); Out.Ln; HALT(1);
|
||||
END;
|
||||
END;
|
||||
|
||||
END createIfNotThere;
|
||||
|
||||
PROCEDURE mkConfDirPath(home: ARRAY OF CHAR; VAR path: ARRAY OF CHAR);
|
||||
BEGIN
|
||||
confDir := home;
|
||||
|
|
@ -28,16 +38,27 @@ BEGIN
|
|||
Strings.Append("/", path);
|
||||
Strings.Append(vpkSettings.vpkPkgDir, path);
|
||||
Strings.Append("/", path);
|
||||
createIfNotThere(path);
|
||||
Strings.Append(vpkSettings.vpkDepDir, path);
|
||||
Strings.Append("/", path);
|
||||
createIfNotThere(path);
|
||||
Strings.Append(name, path);
|
||||
createIfNotThere(path);
|
||||
Strings.Append("/", path);
|
||||
END mkdefPkgDirPath;
|
||||
|
||||
PROCEDURE mkPkgDirPath*(VAR name, path: ARRAY OF CHAR);
|
||||
BEGIN
|
||||
Strings.Append("/", path);
|
||||
createIfNotThere(path);
|
||||
Strings.Append(vpkSettings.vpkDepDir, path);
|
||||
Strings.Append("/", path);
|
||||
createIfNotThere(path);
|
||||
Strings.Append(name, path);
|
||||
createIfNotThere(path);
|
||||
Strings.Append("/", path);
|
||||
END mkPkgDirPath;
|
||||
|
||||
|
||||
PROCEDURE setConfFileName;
|
||||
VAR
|
||||
home: ARRAY 128 OF CHAR;
|
||||
|
|
@ -84,16 +105,6 @@ BEGIN
|
|||
Strings.Append(vpkSettings.vpkTreeDir, path);
|
||||
END getTreeDir;
|
||||
|
||||
PROCEDURE createIfNotThere*(VAR file: vpkFiles.fileInfo);
|
||||
BEGIN
|
||||
IF ~vpkFiles.Exists(file) THEN
|
||||
IF ~vpkFiles.mkDir(file.name) THEN
|
||||
Out.String("failed to create directory "); Out.String(file.name); Out.Ln; HALT(1);
|
||||
END;
|
||||
END;
|
||||
|
||||
END createIfNotThere;
|
||||
|
||||
PROCEDURE checkEnv*;
|
||||
VAR
|
||||
file : vpkFiles.fileInfo;
|
||||
|
|
@ -120,7 +131,7 @@ BEGIN
|
|||
Strings.Append('/', tmp);
|
||||
Strings.Append(vpkSettings.vpkTreeDir, tmp);
|
||||
file.name := tmp;
|
||||
createIfNotThere(file);
|
||||
createIfNotThere(file.name);
|
||||
END checkEnv;
|
||||
|
||||
BEGIN
|
||||
|
|
|
|||
|
|
@ -95,5 +95,34 @@ BEGIN
|
|||
END;
|
||||
END Exists;
|
||||
|
||||
PROCEDURE ExistsByName*(VAR fileName : ARRAY OF CHAR): BOOLEAN;
|
||||
VAR
|
||||
i : INTEGER;
|
||||
st: Status;
|
||||
fl: fileInfo;
|
||||
BEGIN
|
||||
fl.attr := {};
|
||||
COPY(fileName, fl.name);
|
||||
i := stat(fl.name, st);
|
||||
IF i < 0 THEN RETURN FALSE END;
|
||||
IF i = 0 THEN (* file exists*)
|
||||
i := isDir(st.mode);
|
||||
IF i # 0 THEN fl.attr := fl.attr + {dir} END;
|
||||
i := isChar(st.mode);
|
||||
IF i # 0 THEN fl.attr := fl.attr + {char} END;
|
||||
i := isBlock(st.mode);
|
||||
IF i # 0 THEN fl.attr := fl.attr + {block} END;
|
||||
i := isReg(st.mode);
|
||||
IF i # 0 THEN fl.attr := fl.attr + {file} END;
|
||||
i := isFIFO(st.mode);
|
||||
IF i # 0 THEN fl.attr := fl.attr + {fifo} END;
|
||||
i := isLnk(st.mode);
|
||||
IF i # 0 THEN fl.attr := fl.attr + {symlink} END;
|
||||
i := isSock(st.mode);
|
||||
IF i # 0 THEN fl.attr := fl.attr + {socket} END;
|
||||
RETURN TRUE
|
||||
END;
|
||||
END ExistsByName;
|
||||
|
||||
|
||||
END vpkFiles.
|
||||
|
|
|
|||
|
|
@ -43,12 +43,24 @@ BEGIN
|
|||
vpkJsonDepRetriever.getURIandType(dep, URI, typ);
|
||||
vpkSyncer.fetch(dep.name^, URI, typ, prefix);
|
||||
INC(i)
|
||||
UNTIL i= depTree.Count;
|
||||
UNTIL i = depTree.Count;
|
||||
END fetch;
|
||||
|
||||
PROCEDURE build*(VAR package, prefix, tree: ARRAY OF CHAR);
|
||||
|
||||
VAR
|
||||
depTree: vpkdepTree.TdepTree;
|
||||
dep: vpkdepTree.Tdep;
|
||||
i: LONGINT;
|
||||
URI: ARRAY 128 OF CHAR;
|
||||
typ: ARRAY 16 OF CHAR;
|
||||
BEGIN
|
||||
|
||||
depTree := resolve(package);
|
||||
i := 0;
|
||||
REPEAT
|
||||
dep := vpkdepTree.Get(depTree, i);
|
||||
vpkJsonDepRetriever.getURIandType(dep, URI, typ);
|
||||
vpkSyncer.fetch(dep.name^, URI, typ, prefix);
|
||||
INC(i);
|
||||
UNTIL i = depTree.Count;
|
||||
END build;
|
||||
END vpkInstaller.
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ CONST
|
|||
vpkConfFile* = "vipackConf.json";
|
||||
vpkTreeDir* = "vipackTree";
|
||||
vpkPkgDir* = "vpkLocal";
|
||||
vpkDepDir* = "deps";
|
||||
|
||||
graphName* = "deps.dot";
|
||||
|
||||
|
|
@ -25,7 +26,6 @@ CONST
|
|||
packageFileName* = "VersionFile.json";
|
||||
host* = "localhost";
|
||||
port* = "80";
|
||||
installPath* = "dependencies";
|
||||
|
||||
http* = 0;
|
||||
https* = 1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue