autopkg-wrapper 2024.5.2__tar.gz → 2024.5.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autopkg-wrapper
3
- Version: 2024.5.2
3
+ Version: 2024.5.5
4
4
  Summary: A package used to execute some autopkg functions, primarily within the context of a GitHub Actions runner.
5
5
  Home-page: https://github.com/smithjw/autopkg-wrapper
6
6
  License: BSD-3-Clause
@@ -10,13 +10,13 @@ Requires-Python: >=3.12,<4.0
10
10
  Classifier: License :: OSI Approved :: BSD License
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Classifier: Programming Language :: Python :: 3.12
13
- Requires-Dist: chardet (==5.2.0)
14
- Requires-Dist: idna (==3.7)
15
- Requires-Dist: pygithub (==2.3.0)
16
- Requires-Dist: requests (==2.31.0)
17
- Requires-Dist: ruamel-yaml (==0.18.6)
18
- Requires-Dist: toml (==0.10.2)
19
- Requires-Dist: urllib3 (==2.2.1)
13
+ Requires-Dist: chardet (>=5)
14
+ Requires-Dist: idna (>=3)
15
+ Requires-Dist: pygithub (>=2)
16
+ Requires-Dist: requests (>=2)
17
+ Requires-Dist: ruamel-yaml (>=0.18)
18
+ Requires-Dist: toml (>=0.10)
19
+ Requires-Dist: urllib3 (>=2)
20
20
  Project-URL: Repository, https://github.com/smithjw/autopkg-wrapper
21
21
  Description-Content-Type: text/markdown
22
22
 
@@ -0,0 +1 @@
1
+ __version__ = "2024.5.5"
@@ -4,6 +4,7 @@ import logging
4
4
  import plistlib
5
5
  import subprocess
6
6
  import sys
7
+ from datetime import datetime
7
8
  from itertools import chain
8
9
  from pathlib import Path
9
10
 
@@ -85,7 +86,12 @@ class Recipe(object):
85
86
  self.results["failed"] = True
86
87
  self.results["imported"] = ""
87
88
  else:
88
- report = Path("/tmp/autopkg.plist")
89
+ report_dir = Path("/tmp/autopkg")
90
+ report_time = datetime.now().strftime("%Y-%m-%dT%H-%M-%S")
91
+ report_name = Path(f"{self.name}-{report_time}.plist")
92
+
93
+ report_dir.mkdir(parents=True, exist_ok=True)
94
+ report = report_dir / report_name
89
95
  report.touch(exist_ok=True)
90
96
 
91
97
  try:
@@ -195,21 +201,23 @@ def parse_recipe_list(recipes, recipe_file, post_processors):
195
201
  logging.info(f"Recipes: {recipes}") if recipes else None
196
202
  logging.info(f"Recipe List: {recipe_file}") if recipe_file else None
197
203
 
198
- if recipe_file.suffix == ".json":
199
- with open(recipe_file, "r") as f:
200
- recipe_list = json.load(f)
201
- elif recipe_file.suffix == ".txt":
202
- with open(recipe_file, "r") as f:
203
- recipe_list = f.read().splitlines()
204
- elif isinstance(recipes, list):
205
- recipe_list = recipes
206
- elif isinstance(recipes, str):
207
- if recipes.find(",") != -1:
208
- # Assuming recipes separated by commas
209
- recipe_list = [recipe.strip() for recipe in recipes.split(",") if recipe]
210
- else:
211
- # Assuming recipes separated by space
212
- recipe_list = [recipe.strip() for recipe in recipes.split(" ") if recipe]
204
+ if recipe_file:
205
+ if recipe_file.suffix == ".json":
206
+ with open(recipe_file, "r") as f:
207
+ recipe_list = json.load(f)
208
+ elif recipe_file.suffix == ".txt":
209
+ with open(recipe_file, "r") as f:
210
+ recipe_list = f.read().splitlines()
211
+ if recipes:
212
+ if isinstance(recipes, list):
213
+ recipe_list = recipes
214
+ elif isinstance(recipes, str):
215
+ if recipes.find(",") != -1:
216
+ # Assuming recipes separated by commas
217
+ recipe_list = [recipe.strip() for recipe in recipes.split(",") if recipe]
218
+ else:
219
+ # Assuming recipes separated by space
220
+ recipe_list = [recipe.strip() for recipe in recipes.split(" ") if recipe]
213
221
 
214
222
  if recipe_list is None:
215
223
  logging.error(
@@ -24,6 +24,14 @@ def validate_directory(arg):
24
24
  message = f"Error! This is not valid directory: {arg}"
25
25
  raise argparse.ArgumentTypeError(message)
26
26
 
27
+ def validate_bool(arg):
28
+ if isinstance(arg, bool):
29
+ return arg
30
+ elif isinstance(arg, str) and arg.lower() in ['0','false','no', 'f']:
31
+ return False
32
+ elif isinstance(arg, str) and arg.lower() in ['1','true','yes', 't']:
33
+ return True
34
+
27
35
  def setup_args():
28
36
  parser = argparse.ArgumentParser(description="Run autopkg recipes")
29
37
  recipe_arguments = parser.add_mutually_exclusive_group()
@@ -50,7 +58,7 @@ def setup_args():
50
58
  )
51
59
  parser.add_argument(
52
60
  "--debug",
53
- default=os.getenv("AW_DEBUG", False),
61
+ default=validate_bool(os.getenv("AW_DEBUG", False)),
54
62
  action="store_true",
55
63
  help="Enable debug logging when running script",
56
64
  )
@@ -5,22 +5,21 @@
5
5
  name = "autopkg-wrapper"
6
6
  readme = "README.md"
7
7
  repository = "https://github.com/smithjw/autopkg-wrapper"
8
- version = "2024.5.2"
8
+ version = "2024.5.5"
9
9
 
10
10
  [tool.poetry.scripts]
11
11
  # When built and installed by pip, the command autopkg_wrapper will be availble in to run within that environment
12
- autopkg-wrapper = "autopkg_wrapper.autopkg_wrapper:main"
13
12
  autopkg_wrapper = "autopkg_wrapper.autopkg_wrapper:main"
14
13
 
15
14
  [tool.poetry.dependencies]
16
- chardet = "5.2.0"
17
- idna = "3.7"
18
- pygithub = "2.3.0"
15
+ chardet = ">=5"
16
+ idna = ">=3"
17
+ pygithub = ">=2"
19
18
  python = "^3.12"
20
- requests = "2.31.0"
21
- ruamel-yaml = "0.18.6"
22
- toml = "0.10.2"
23
- urllib3 = "2.2.1"
19
+ requests = ">=2"
20
+ ruamel-yaml = ">=0.18"
21
+ toml = ">=0.10"
22
+ urllib3 = ">=2"
24
23
 
25
24
  [tool.poetry_bumpversion.file."autopkg_wrapper/__init__.py"]
26
25
 
@@ -1 +0,0 @@
1
- __version__ = "2024.5.2"