Skip to content

Commit 9aa3a66

Browse files
committed
feat(cli): standardiser le payload doctor avec ok
1 parent 4c6a5db commit 9aa3a66

2 files changed

Lines changed: 9 additions & 15 deletions

File tree

cli/click_quality_commands.py

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,21 +34,7 @@ def register_quality_commands(
3434
def doctor(workspace, as_json, strict):
3535
# `doctor` agrège un état global plateforme + Qt + inventory engines.
3636
payload = doctor_payload(workspace=resolve_workspace_path(workspace))
37-
if strict:
38-
# En mode strict, la commande devient un garde-fou CI et non plus seulement informatif.
39-
workspace_payload = payload.get("workspace")
40-
has_workspace_issue = isinstance(
41-
workspace_payload, dict
42-
) and not workspace_payload.get("exists", True)
43-
has_engine_issue = (
44-
payload["engines"]["compatible_count"] != payload["engines"]["count"]
45-
)
46-
has_qt_issue = not payload.get("qt_available", False)
47-
strict_failed = bool(
48-
has_workspace_issue or has_engine_issue or has_qt_issue
49-
)
50-
else:
51-
strict_failed = False
37+
strict_failed = bool(strict and not payload.get("ok", True))
5238
if as_json:
5339
if strict_failed:
5440
emit_and_exit(payload, EXIT_PRECHECK_FAILED, True)

cli/headless_ops.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1673,6 +1673,13 @@ def doctor_payload(workspace: str | None = None) -> dict[str, Any]:
16731673
}
16741674
if workspace:
16751675
payload["workspace"] = workspace_inspect_payload(workspace)
1676+
workspace_payload = payload.get("workspace")
1677+
has_workspace_issue = isinstance(workspace_payload, dict) and not workspace_payload.get(
1678+
"exists", True
1679+
)
1680+
has_engine_issue = compatible_count != engine_summary["count"]
1681+
has_qt_issue = not qt_available
1682+
payload["ok"] = not (has_workspace_issue or has_engine_issue or has_qt_issue)
16761683
return payload
16771684

16781685

@@ -1726,6 +1733,7 @@ def bcasl_doctor_payload(workspace: str | None = None) -> dict[str, Any]:
17261733
"workspace": ws,
17271734
"plugins": plugins,
17281735
"checks": checks,
1736+
"ok": all(bool(check.get("ok")) for check in checks),
17291737
}
17301738

17311739

0 commit comments

Comments
 (0)