From 2813f7ce44c5cb44245b11bf8780511bea2639a6 Mon Sep 17 00:00:00 2001 From: Norayr Chilingarian Date: Thu, 20 Jan 2022 01:04:00 +0400 Subject: [PATCH] works with custom tree dir. --- src/unix/vpkEnv.Mod | 22 ++++++++++++++++++---- src/vipack.Mod | 2 ++ src/vpkConf.Mod | 5 +++++ 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/unix/vpkEnv.Mod b/src/unix/vpkEnv.Mod index ceab822..2cbfaf1 100644 --- a/src/unix/vpkEnv.Mod +++ b/src/unix/vpkEnv.Mod @@ -3,6 +3,7 @@ IMPORT Files, Platform, Strings, Out, vpkSettings, vpkFiles, StringList; VAR conf, confDir : ARRAY 256 OF CHAR; + pkgTreeDir: POINTER TO ARRAY OF CHAR; PROCEDURE getHome*(VAR path: ARRAY OF CHAR); BEGIN @@ -149,11 +150,24 @@ BEGIN RETURN vpkFiles.Exists(file); END checkConfig; +PROCEDURE setTreeDir*(VAR path: ARRAY OF CHAR); +VAR + ln: INTEGER; +BEGIN + ln := Strings.Length(path) + 1; + NEW(pkgTreeDir, ln); + COPY (path, pkgTreeDir^); +END setTreeDir; + PROCEDURE getTreeDir*(VAR path: ARRAY OF CHAR); BEGIN - COPY(confDir, path); - Strings.Append("/", path); - Strings.Append(vpkSettings.vpkTreeDir, path); + IF pkgTreeDir = NIL THEN + COPY(confDir, path); + Strings.Append("/", path); + Strings.Append(vpkSettings.vpkTreeDir, path); + ELSE + COPY(pkgTreeDir^, path); + END END getTreeDir; PROCEDURE checkEnv*; @@ -187,5 +201,5 @@ END checkEnv; BEGIN setConfFileName; - + pkgTreeDir := NIL; END vpkEnv. diff --git a/src/vipack.Mod b/src/vipack.Mod index 3b46d6f..aa319c2 100644 --- a/src/vipack.Mod +++ b/src/vipack.Mod @@ -195,6 +195,8 @@ BEGIN opts.valOfOpt("-P", foptions, prefix); opts.valOfOpt("-t", foptions, pkgTree); + IF pkgTree # "" THEN vpkConf.setTreeDir(pkgTree) END; + IF sync THEN vpkSyncer.sync ELSE diff --git a/src/vpkConf.Mod b/src/vpkConf.Mod index 364718f..9f4566a 100644 --- a/src/vpkConf.Mod +++ b/src/vpkConf.Mod @@ -73,4 +73,9 @@ BEGIN END; END getConfigTreeVal; +PROCEDURE setTreeDir*(VAR a: ARRAY OF CHAR); +BEGIN + vpkEnv.setTreeDir(a) +END setTreeDir; + END vpkConf.