From 02575acb80a47095169d0a96a133e6222cebd7bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois?= Date: Thu, 5 Dec 2024 16:04:46 +0100 Subject: [PATCH] allow to set build directory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jean-François --- massa_test_framework/compile.py | 15 +++++++++++++-- massa_test_framework/server.py | 5 +++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/massa_test_framework/compile.py b/massa_test_framework/compile.py index d3fd4f8..1a784f6 100644 --- a/massa_test_framework/compile.py +++ b/massa_test_framework/compile.py @@ -83,7 +83,7 @@ def __init__(self, server: Server, compile_opts: CompileOpts): self.server = server self.compile_opts = compile_opts - self._repo = "" + self._repo: Path = Path("") self._target = "" self._patches: Dict[str, bytes | str | Path | PatchConstant] = {} @@ -115,7 +115,18 @@ def compile(self) -> None: Raise: RuntimeError: if git clone return non 0, cargo build return non 0, patch cannot be applied """ - tmp_folder = self.server.mkdtemp(prefix="compile_massa_") + # build or rebuild into the predefined directory + if self.compile_opts.already_compiled is not None: + # assuming we are in compile it means me want to rebuild + # and reuse the same folder + # TODO: if the folder exists do a git pull instead of clone + # for now we assume the user just want to reuse he folder name + tmp_folder = self.compile_opts.already_compiled + if tmp_folder.exists(): + self.server.rmtree(str(tmp_folder)) + #self.server.mkdir(tmp_folder) + else: # use a temporary folder + tmp_folder = self.server.mkdtemp(prefix="compile_massa_") # print(self.compile_opts) # print(type(self.compile_opts)) cmd = ["git", "clone"] diff --git a/massa_test_framework/server.py b/massa_test_framework/server.py index 37efcd3..471535c 100644 --- a/massa_test_framework/server.py +++ b/massa_test_framework/server.py @@ -281,6 +281,11 @@ def remove(self, path: str) -> None: os.unlink(path) else: self.server.remove(str(path)) + def rmtree(self, path: str) -> None: + if self.server_opts.local: + shutil.rmtree(path) + else: + raise NotImplementedError("Not implemented for remote server") def stop(self, process): if self.server_opts.local: