The lambda CLI previously only wrote output to stdout using shell redirection.
This PR adds support for writing results to files using the -o flag.
This is implemented using a new Destination interface that mirrors the existing Source pattern.
Changes:
Added Destination interface with StdoutDestination and FileDestination implementations.
Added -o flag to CLI argument parser for output file specification.
Updated Config to use Destination instead of direct output handling.
Refactored main to use Destination.Write() for result output.
Updated Makefile targets (run, profile, explain) to use -o flag instead of shell redirection.
Decisions
The -o flag defaults to stdout when not specified or when set to -.
This maintains backward compatibility while providing explicit file output capability.
Benefits
Cleaner command-line interface without shell redirection.
Symmetric design with Source interface for input.
More portable across different shells and environments.
## Description
The lambda CLI previously only wrote output to stdout using shell redirection.
This PR adds support for writing results to files using the `-o` flag.
This is implemented using a new `Destination` interface that mirrors the existing `Source` pattern.
Changes:
- Added `Destination` interface with `StdoutDestination` and `FileDestination` implementations.
- Added `-o` flag to CLI argument parser for output file specification.
- Updated `Config` to use `Destination` instead of direct output handling.
- Refactored main to use `Destination.Write()` for result output.
- Updated Makefile targets (`run`, `profile`, `explain`) to use `-o` flag instead of shell redirection.
### Decisions
The `-o` flag defaults to stdout when not specified or when set to `-`.
This maintains backward compatibility while providing explicit file output capability.
## Benefits
- Cleaner command-line interface without shell redirection.
- Symmetric design with `Source` interface for input.
- More portable across different shells and environments.
- Explicit output handling improves code clarity.
## Checklist
- [x] Code follows conventional commit format.
- [x] Branch follows naming convention (`<type>/<description>`).
- [ ] Tests pass (if applicable).
- [ ] Documentation updated (if applicable).
Added -o flag to write results to files using a new Destination interface.
Changes:
- Add Destination interface with StdoutDestination and FileDestination implementations.
- Add -o flag to CLI parser for output file specification.
- Update Config to use Destination instead of direct output handling.
- Refactor main to use Destination.Write() for result output.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Description
The lambda CLI previously only wrote output to stdout using shell redirection.
This PR adds support for writing results to files using the
-oflag.This is implemented using a new
Destinationinterface that mirrors the existingSourcepattern.Changes:
Destinationinterface withStdoutDestinationandFileDestinationimplementations.-oflag to CLI argument parser for output file specification.Configto useDestinationinstead of direct output handling.Destination.Write()for result output.run,profile,explain) to use-oflag instead of shell redirection.Decisions
The
-oflag defaults to stdout when not specified or when set to-.This maintains backward compatibility while providing explicit file output capability.
Benefits
Sourceinterface for input.Checklist
<type>/<description>).