feat(cli): migrate from docopt to cobra#165
Merged
obnoxxx merged 1 commit intocheckmake:mainfrom Oct 16, 2025
Merged
Conversation
a0b85b5 to
172e701
Compare
obnoxxx
reviewed
Oct 16, 2025
Collaborator
obnoxxx
left a comment
There was a problem hiding this comment.
Nice change, thank you!
Only thing I noticed:
$ ./checkmake --config=test.ini list-rules
Error: unknown flag: --config
$
Apart from this, it is fine.
And this not even something that worked before.
Refactors the command-line interface to use the `spf13/cobra` library, replacing the legacy `docopt` implementation. Major Changes: - Replaced docopt-based argument parsing with Cobra commands and flags: - Added `--config`, `--format`, and `--debug` as proper Cobra flags. - Added a `list-rules` subcommand. - Removed `os.Exit` calls from logic functions; errors now propagate via `RunE`, allowing Cobra to handle exit codes. - Improved config file handling with explicit error reporting and cross-platform path safety using `filepath.Join`. Testing improvements: - Rewrote main tests to use Cobra commands directly. - Added `captureOutput()` helper to test CLI output. - New tests for: - Successful run with a simple Makefile. - Failing run with known rule violations. - Listing of registered rules (regex-based table validation). - Custom formatter flag (`--format`). CLI behavior and output changes: - Output Streams: Prints violation data to `stdout` and a final summary error to `stderr`, improving scriptability. - Exit Code: Exits with a standard code of `1` on failure, instead of the previous behavior of exiting with the violation count. Signed-off-by: Mikel Olasagasti Uranga <[email protected]>
172e701 to
57bdde2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refactors the command-line interface to use the
spf13/cobralibrary, replacing the legacydocoptimplementation.Major Changes:
--config,--format, and--debugas proper Cobra flags.list-rulessubcommand.os.Exitcalls from logic functions; errors now propagate viaRunE, allowing Cobra to handle exit codes.filepath.Join.Testing improvements:
captureOutput()helper to test CLI output.--format).CLI behavior and output changes:
stdoutand a final summary error tostderr, improving scriptability.1on failure, instead of the previous behavior of exiting with the violation count.Checklist
Not all of these might apply to your change but the more you are able to check
the easier it will be to get your contribution merged.