Skip to content

feat: add mise-run-quiet lint rule (#42)#64

Open
olavostauros wants to merge 2 commits into
KnickKnackLabs:mainfrom
olavostauros:feat/mise-run-quiet
Open

feat: add mise-run-quiet lint rule (#42)#64
olavostauros wants to merge 2 commits into
KnickKnackLabs:mainfrom
olavostauros:feat/mise-run-quiet

Conversation

@olavostauros

Copy link
Copy Markdown

Summary

Adds lint:mise-run-quiet rule that flags mise run calls without -q in clean-output contexts where task runner headers pollute captured output (implements issue #42).

Detection

File-scan with per-line context classification via discover_shell_files():

Context Severity Example
Command substitution FAIL $(mise run build) — header goes into captured output
eval FAIL eval "\$(mise run env)" — header pollutes eval'd string
Pipeline FAIL `mise run check

Safe contexts (not flagged): bare interactive calls, mise run -q, 2>/dev/null, grep/sed/awk patterns, comments, string literals.

Files added

File Description
.mise/tasks/lint/mise-run-quiet New lint rule (~227 lines)
test/lint/mise-run-quiet/mise-run-quiet.bats 17 BATS tests
test/lint/mise-run-quiet/fixtures/ 9 fixture directories (clean, clean-already-quiet, dirty-command-sub, dirty-eval, dirty-pipe, dirty-mixed, ignored-file, ignored-inline, no-shell-files)

Validation

  • 235/235 tests pass (17 new mise-run-quiet tests at indices 106–122, zero regressions)
  • Self-hosting: mise run lint:mise-run-quiet . — only test fixtures flagged, codebase repo clean
  • ShellCheck: Clean
  • Whitespace: git diff --check — no errors

Closes #42

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

lint: flag mise run without -q in clean-output contexts

1 participant