feat(hook): handle global options before subcommands#99
Merged
pszymkowiak merged 3 commits intortk-ai:masterfrom Feb 15, 2026
Merged
feat(hook): handle global options before subcommands#99pszymkowiak merged 3 commits intortk-ai:masterfrom
pszymkowiak merged 3 commits intortk-ai:masterfrom
Conversation
…ibility Replace \s with [[:space:]] in all grep -E patterns. The \s shorthand is a PCRE extension not guaranteed by POSIX ERE, causing intermittent match failures on macOS depending on grep version and locale settings. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ker/kubectl Normalize commands by stripping global options (git -C, --no-pager; cargo +toolchain; docker -H, --context; kubectl --context, -n) to correctly identify the subcommand for rewrite matching. Preserves all original arguments in the rewritten command.
Collaborator
|
please review conlficts error ( rebase ) |
…ns-normalization # Conflicts: # hooks/rtk-rewrite.sh
Contributor
Author
|
I fixed the merge conflicts |
ahundt
added a commit
to ahundt/rtk
that referenced
this pull request
Feb 15, 2026
… dispatcher Merge origin/master (7401f10) into feat/multi-platform-hooks. From master (6 commits): - src/format_cmd.rs: add universal format command (prettier, black, ruff format) - src/lint_cmd.rs: add Python lint dispatcher (pylint, mypy, flake8, ruff via rtk lint) - src/git.rs: add "Not a git repository" error handling for git status - src/ruff_cmd.rs: make filter_ruff_check_json and filter_ruff_format pub - src/main.rs: add Format command variant and mod format_cmd - hooks/rtk-rewrite.sh: global option stripping for git/cargo/docker/kubectl (PR rtk-ai#99) - Cargo.toml: version bump to 0.16.0 Conflict resolution: - hooks/rtk-rewrite.sh: kept 3-line migration shim (shell logic replaced by Rust handlers in this branch), integrated PR rtk-ai#99 global option stripping into Rust Branch additions to integrate master capabilities: - src/config/rules.rs: add strip_global_options() for git (-C, --no-pager, --no-optional-locks, --bare, --literal-pathspecs, --key=value), cargo (+toolchain), docker (-H, --context, --config), kubectl (--context, --kubeconfig, -n). Updated matches_rule() to normalize commands before multi-word pattern matching. Table-driven tests: 26 strip cases, 11 rule-matching-with-globals cases. - src/cmd/hook.rs: add test_global_options_not_blocked (12 cases), test_compound_commands_rewrite (5 chain cases with operator preservation), test_compound_blocked_in_chain (3 cases), test_compound_quoted_operators_not_split. - src/ccusage.rs: fix trailing whitespace (cargo fmt) 675 tests pass, 0 failures. cargo fmt clean, no new clippy warnings.
ahundt
added a commit
to ahundt/rtk
that referenced
this pull request
Feb 23, 2026
… dispatcher Merge origin/master (9324f4c) into feat/multi-platform-hooks. From master (6 commits): - src/format_cmd.rs: add universal format command (prettier, black, ruff format) - src/lint_cmd.rs: add Python lint dispatcher (pylint, mypy, flake8, ruff via rtk lint) - src/git.rs: add "Not a git repository" error handling for git status - src/ruff_cmd.rs: make filter_ruff_check_json and filter_ruff_format pub - src/main.rs: add Format command variant and mod format_cmd - hooks/rtk-rewrite.sh: global option stripping for git/cargo/docker/kubectl (PR rtk-ai#99) - Cargo.toml: version bump to 0.16.0 Conflict resolution: - hooks/rtk-rewrite.sh: kept 3-line migration shim (shell logic replaced by Rust handlers in this branch), integrated PR rtk-ai#99 global option stripping into Rust Branch additions to integrate master capabilities: - src/config/rules.rs: add strip_global_options() for git (-C, --no-pager, --no-optional-locks, --bare, --literal-pathspecs, --key=value), cargo (+toolchain), docker (-H, --context, --config), kubectl (--context, --kubeconfig, -n). Updated matches_rule() to normalize commands before multi-word pattern matching. Table-driven tests: 26 strip cases, 11 rule-matching-with-globals cases. - src/cmd/hook.rs: add test_global_options_not_blocked (12 cases), test_compound_commands_rewrite (5 chain cases with operator preservation), test_compound_blocked_in_chain (3 cases), test_compound_quoted_operators_not_split. - src/ccusage.rs: fix trailing whitespace (cargo fmt) 675 tests pass, 0 failures. cargo fmt clean, no new clippy warnings.
ahundt
pushed a commit
to ahundt/rtk
that referenced
this pull request
Feb 23, 2026
* fix(hook): use POSIX character classes for cross-platform grep compatibility Replace \s with [[:space:]] in all grep -E patterns. The \s shorthand is a PCRE extension not guaranteed by POSIX ERE, causing intermittent match failures on macOS depending on grep version and locale settings. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(hook): handle global options before subcommands in git/cargo/docker/kubectl Normalize commands by stripping global options (git -C, --no-pager; cargo +toolchain; docker -H, --context; kubectl --context, -n) to correctly identify the subcommand for rewrite matching. Preserves all original arguments in the rewritten command. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
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.
Summary
git -C /path status,cargo +nightly test,docker -H host ps,kubectl --context prod get podsnow correctly rewritertkcommandTools affected
-C <path>,-c k=v,--no-pager,--no-optional-locks,--bare,--literal-pathspecs,--key=val+nightly,+stable,+1.75.0-H <host>,--context <ctx>,--config <path>,--key=val--context <ctx>,-n <ns>,--kubeconfig <path>,--namespace <ns>,--key=valTest plan
🤖 Generated with Claude Code