Skip to content

Commit 9c6a57c

Browse files
committed
removing json dump
1 parent 88cef37 commit 9c6a57c

4 files changed

Lines changed: 22 additions & 7 deletions

File tree

.coverage

0 Bytes
Binary file not shown.

devolv/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.1.15"
1+
__version__ = "0.1.18"

devolv/iam/validator/cli.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import typer
22
import os
33
import json
4+
import ast
45
from typer import Exit
56
from devolv.iam.validator.core import validate_policy_file
67
from devolv.iam.validator.folder import validate_policy_folder
@@ -17,6 +18,7 @@ def validate(
1718
typer.secho(f"❌ File not found: {path}", fg=typer.colors.RED)
1819
raise Exit(code=1)
1920

21+
findings = []
2022
if os.path.isfile(path):
2123
findings = validate_policy_file(path)
2224
elif os.path.isdir(path):
@@ -38,10 +40,25 @@ def validate(
3840
typer.echo(json.dumps(findings, indent=2))
3941
else:
4042
for finding in findings:
41-
typer.secho(
42-
f"❌ {finding.get('level', '').upper()}: {finding.get('message', '')}",
43-
fg=typer.colors.RED
44-
)
43+
msg = finding.get('message', '')
44+
try:
45+
inner_findings = ast.literal_eval(msg) if isinstance(msg, str) else msg
46+
if isinstance(inner_findings, list):
47+
for inner in inner_findings:
48+
typer.secho(
49+
f"❌ {inner.get('level', '').upper()}: {inner.get('message', '')}",
50+
fg=typer.colors.RED
51+
)
52+
else:
53+
typer.secho(
54+
f"❌ {finding.get('level', '').upper()}: {msg}",
55+
fg=typer.colors.RED
56+
)
57+
except Exception:
58+
typer.secho(
59+
f"❌ {finding.get('level', '').upper()}: {msg}",
60+
fg=typer.colors.RED
61+
)
4562

4663
if any(f.get("level", "").lower() in ("error", "high") for f in findings):
4764
raise Exit(code=1)

devolv/iam/validator/folder.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ def validate_policy_folder(folder_path: str) -> list:
2121
print("✅ Policy is valid.")
2222
else:
2323
all_findings.extend(findings)
24-
for f in findings:
25-
print(f"❌ {f['level'].upper()}: {f['message']}")
2624
except Exception as e:
2725
all_findings.append({"level": "error", "message": f"{file.name} failed: {str(e)}"})
2826
print(f"❌ ERROR parsing {file.name}: {str(e)}")

0 commit comments

Comments
 (0)