From 1057b3a3012cf3669df7e96356c68e1f1d59edf5 Mon Sep 17 00:00:00 2001 From: jgstew Date: Sun, 7 Jul 2024 09:22:30 -0700 Subject: [PATCH] fixes for 7z processor --- ...Firefox-Win.ChocolateyTemplate.recipe.yaml | 3 ++- SharedProcessors/SevenZip.py | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Mozilla/Firefox-Win.ChocolateyTemplate.recipe.yaml b/Mozilla/Firefox-Win.ChocolateyTemplate.recipe.yaml index 0803f9b..7bf3980 100644 --- a/Mozilla/Firefox-Win.ChocolateyTemplate.recipe.yaml +++ b/Mozilla/Firefox-Win.ChocolateyTemplate.recipe.yaml @@ -35,4 +35,5 @@ Process: # TODO create zip Firefox.nupkg - Processor: com.github.jgstew.SharedProcessors/SevenZip Arguments: - sevenzip_args: ["a -tzip firefox.nupkg ./tmp/*"] + sevenzip_args: ["a", "-tzip", "../firefox.nupkg", "*"] + relative_directory: tmp diff --git a/SharedProcessors/SevenZip.py b/SharedProcessors/SevenZip.py index 34663ef..c73d833 100644 --- a/SharedProcessors/SevenZip.py +++ b/SharedProcessors/SevenZip.py @@ -36,6 +36,11 @@ class SevenZip(Processor): # "default": [], "description": "Array of cmd args to pass to 7z executable.", }, + "relative_directory": { + "required": False, + "default": False, + "description": "relative directory.", + }, "ignore_errors": { "required": False, "default": True, @@ -55,6 +60,7 @@ class SevenZip(Processor): def main(self): """Execution starts here:""" working_directory = self.env.get("RECIPE_CACHE_DIR") + relative_directory = self.env.get("relative_directory", False) ignore_errors = self.env.get("ignore_errors", True) sevenzip_args = self.env.get("sevenzip_args", []) # verbosity = self.env.get("verbose", 0) @@ -71,16 +77,19 @@ def main(self): self.output(f"Using Path to 7zip: {sevenzip}") # "-aoa" to always overwrite all files: - cmd = [sevenzip] + cmd = [sevenzip] + sevenzip_args + + # if sevenzip_args and len(sevenzip_args) > 0: + # cmd.extend(sevenzip_args) - if sevenzip_args and len(sevenzip_args) > 0: - cmd.extend(sevenzip_args) + self.output(f"7zip cmd line to be executed: {cmd}", 1) - self.output(f"7zip cmd line to be executed: {cmd}", 3) + if relative_directory: + os.chdir(os.path.join(working_directory, relative_directory)) try: cmd_output = subprocess.check_output(cmd).decode("utf-8") - self.output(f"Extraction Process Output: {cmd_output}", 4) + self.output(f"Extraction Process Output: {cmd_output}", 2) except BaseException as err: self.output(f"ERROR: {err}", 2) if not ignore_errors: