Skip to content

Commit 3be4baf

Browse files
ssbarneaabhikdps
andauthored
Allow linter to capture and display initialization warnings (#4504)
Co-authored-by: Abhinav Anand <[email protected]>
1 parent be8cf91 commit 3be4baf

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,4 @@ test/schemas/node_modules
8080
node_modules
8181
.direnv
8282
uv.lock
83+
.ansible

src/ansiblelint/__main__.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,14 +273,16 @@ def fix(runtime_options: Options, result: LintResult, rules: RulesCollection) ->
273273
# pylint: disable=too-many-locals,too-many-statements
274274
def main(argv: list[str] | None = None) -> int:
275275
"""Linter CLI entry point."""
276+
must_exit = False
276277
# alter PATH if needed (venv support)
277278
path_inject(argv[0] if argv and argv[0] else "")
278279

279280
if argv is None: # pragma: no cover
280281
argv = sys.argv
281282

282283
with warnings.catch_warnings(record=True) as warns:
283-
warnings.simplefilter(action="ignore")
284+
# do not use "ignore" as we will miss to collect them
285+
warnings.simplefilter(action="default")
284286

285287
cache_dir_lock = initialize_options(argv[1:])
286288

@@ -297,7 +299,7 @@ def main(argv: list[str] | None = None) -> int:
297299
if msg:
298300
console.print(msg)
299301
support_banner()
300-
sys.exit(0)
302+
must_exit = True
301303
else:
302304
support_banner()
303305

@@ -310,6 +312,9 @@ def main(argv: list[str] | None = None) -> int:
310312
for warn in warns:
311313
_logger.warning(str(warn.message))
312314
warnings.resetwarnings()
315+
316+
if must_exit:
317+
sys.exit(0)
313318
# checks if we have `ANSIBLE_LINT_SKIP_SCHEMA_UPDATE` set to bypass schema
314319
# update. Also skip if in offline mode.
315320
# env var set to skip schema refresh

0 commit comments

Comments
 (0)