hwatch

hwatch - alternative watch command.

Description

hwatch is a alternative watch command. That records the result of command execution and can display it history and diffs.

Features

Install

macOS (brew)

brew install hwatch

macOS (MacPorts)

sudo port install hwatch

Arch Linux (AUR)

paru -S hwatch

Cargo Install

cargo install hwatch

Usage

hwatch 0.3.9
blacknon <blacknon@orebibou.com>
A modern alternative to the watch command, records the differences in execution results and can
check this differences at after.

USAGE:
    hwatch [OPTIONS] <command>...

ARGS:
    <command>...

OPTIONS:
    -B, --beep
            beep if command has a change result

        --mouse
            enable mouse wheel support. With this option, copying text with your terminal may be
            harder. Try holding the Shift key.

    -A, --aftercommand <after_command>
            Executes the specified command if the output changes. Information about changes is
            stored in json format in environment variable ${HWATCH_DATA}.

    -c, --color
            interpret ANSI color and style sequences

    -d, --differences
            highlight changes between updates

    -t, --no-title
            hide the UI on start. Use `t` to toggle it.

    -N, --line-number
            show line number

        --no-help-banner
            hide the "Display help with h key" message

    -x, --exec
            Run the command directly, not through the shell. Much like the `-x` option of the watch
            command.

    -l, --logfile <logfile>
            logging file

    -s, --shell <shell_command>
            shell to use at runtime. can  also insert the command to the location specified by
            {COMMAND}. [default: "sh -c"]

    -n, --interval <interval>
            seconds to wait between updates [default: 2]

    -h, --help
            Print help information

    -V, --version
            Print version information

watch window keybind

| Key | Action |----------------|------------------------- | , | move selected screen(history/watch). | | select watch screen. | | select history screen. | H | show help window. | C | toggle color. | D | switch diff mode. | N | switch line number display. | T | toggle the UI (history pane and header). | Backspace | toggle the history pane. | Q | exit hwatch. | 0 | disable diff. | 1 | switch watch type diff. | 2 | switch line type diff. | 3 | switch word type diff. | O | switch output mode(output->stdout->stderr). | Shift+O | show only lines with differences(line/word diff mode only). | F1 | only stdout print. | F2 | only stderr print. | F3 | print output. | Tab | toggle select screen(history/watch). | / | filter history by string. | * | filter history by regex. | Esc | unfiltering.

Configuration

If you always want to use some command-line options, you can set them in the HWATCH environment variable. For example, if you use bash, you can add the following to your .bashrc:

bash export HWATCH="--no-title --color --no-help-banner"

Example

interval 10 second

Use the -n option to specify the command execution interval.

bash hwatch -n 3 command...

logging output

The command execution result can be output as a log in json format.

bash hwatch -n 3 -l hwatch_log.json command...

When you check the json log, you can easily check it by using this script.

Use shell function

If you want the shell function to be executed periodically, you can specify the shell command to be executed with -s as follows.

```bash

bash

hwatch -n 3 -s 'bash -c "source ~/.bashrc"; {COMMAND}' command...

zsh

hwatch -n 3 -s 'zsh -c "source ~/.zshrc"; {COMMAND}' command... ```

ANSI Color code

If you want to see output colored with ANSI color code, enable color mode.

To enable color mode, run hwatch with the -c option. Alternatively, you can enable / disable the color mode with the C key during execution.

bash hwatch -n 3 -c command...

diff view

To enable color mode, run hwatch with the -d option.

There are several "diff modes" available. Switching can be done with the D key.

bash hwatch -n 3 -d command...

watch diff

line diff

word diff

history filtering

You can filter history as a string with / key and as a regular expression with * key.