Skip to content

Comments

[BTNET-5046] Add --silent flag to suppress stdout on success#73

Open
Synesso wants to merge 1 commit intoblock:mainfrom
Synesso:jmawson/btnet-5046-ai-rules-cli-add-silent-flag
Open

[BTNET-5046] Add --silent flag to suppress stdout on success#73
Synesso wants to merge 1 commit intoblock:mainfrom
Synesso:jmawson/btnet-5046-ai-rules-cli-add-silent-flag

Conversation

@Synesso
Copy link
Contributor

@Synesso Synesso commented Feb 13, 2026

Summary

Add a --silent CLI flag that suppresses all stdout output on success, while preserving stderr error output and non-zero exit codes.

Implementation

Uses libc::dup2 to redirect stdout (fd 1) to /dev/null early in run_cli(), before any command executes. This avoids threading a silent: bool parameter through every command function.

Changes

  • Cargo.toml: Added libc dependency
  • src/main.rs: Added suppress_stdout() function
  • src/cli/mod.rs: Call suppress_stdout() when --silent is set
  • src/cli/args.rs: Added --silent flag to Cli struct
  • src/commands/status.rs: Minor test cleanup

What's suppressed

  • println! calls in command functions
  • print_success/print_info helpers
  • GenerationResult::display()

What's NOT suppressed

  • Errors written to stderr
  • Non-zero exit codes (status command exits 1/2 for out-of-sync/missing rules)

Testing

All 333 existing tests pass.

Linear: https://linear.app/squareup/issue/BTNET-5046

Add a --silent CLI flag that redirects stdout to /dev/null at the
file descriptor level, suppressing all println!/print_success/print_info
output on success. Stderr errors and non-zero exit codes (status command)
remain unaffected.

Uses libc::dup2 to redirect fd 1 early in run_cli(), avoiding the need
to thread a silent parameter through every command function.

Amp-Thread-ID: https://ampcode.com/threads/T-019c55a3-ef4f-7638-906d-8193f9ed0830
Co-authored-by: Amp <amp@ampcode.com>
@Synesso Synesso marked this pull request as ready for review February 13, 2026 06:27
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.

1 participant