Skip to content

Conversation

@dotslash
Copy link
Owner

@dotslash dotslash commented Jul 5, 2025

This commit introduces support for logging shell commands in Zsh alongside the existing Bash support.

Key changes:

  • Modified recent2.py to handle different shell types (bash, zsh) via a --shell argument to log-recent.
  • The log-recent command now accepts --raw_command_text and --sequence_num for direct input, primarily for Zsh integration.
  • Updated check_prompt to be shell-aware and provide appropriate guidance.
  • Created recent2_zsh_setup.sh containing Zsh precmd and preexec hook functions to capture command details and call log-recent.
  • Updated README.md with detailed instructions for Zsh users, including the necessary .zshrc snippet.

Zsh integration uses HISTCMD for the sequence number and captures the full command text from the preexec hook arguments.

This commit introduces support for logging shell commands in Zsh alongside the existing Bash support.

Key changes:
- Modified `recent2.py` to handle different shell types (`bash`, `zsh`) via a `--shell` argument to `log-recent`.
- The `log-recent` command now accepts `--raw_command_text` and `--sequence_num` for direct input, primarily for Zsh integration.
- Updated `check_prompt` to be shell-aware and provide appropriate guidance.
- Created `recent2_zsh_setup.sh` containing Zsh `precmd` and `preexec` hook functions to capture command details and call `log-recent`.
- Updated `README.md` with detailed instructions for Zsh users, including the necessary `.zshrc` snippet.

Zsh integration uses `HISTCMD` for the sequence number and captures the full command text from the `preexec` hook arguments.
This commit refines the Zsh integration for recent2 based on user feedback.

Key changes:
- Simplified `check_prompt()` in `recent2.py` to only perform active checks (i.e., for `PROMPT_COMMAND`) when running in a Bash shell. This makes the experience smoother for Zsh users.
- Cleaned up `recent2_zsh_setup.sh` by removing excessive comments and ensuring the functional code is directly sourceable for easier integration into `.zshrc`.
- The `log()` function in `recent2.py` retains the necessary arguments (`--shell`, `--raw_command_text`, `--sequence_num`) for Zsh to pass command data directly.
- `README.md` instructions for Zsh remain accurate, guiding users to either copy the snippet or source the setup file.
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.

2 participants