# bat-extras: batpipe A `less` (and `bat`) preprocessor for viewing more types of files in the terminal. ## Usage Like [lesspipe](https://github.com/wofr06/lesspipe), `batpipe` is designed to work with programs that support preprocessing with the `LESSOPEN` environment variable. Setting up `batpipe` will depend on your shell: **Bash:** eval "$(batpipe)" **Fish:** eval (batpipe) ## Environment | Variable | Description | | -------------------- | ------------------------------------------------------------ | | `BATPIPE_TERM_WIDTH` | Sets the terminal width provided to `bat`. If this variable starts with a hyphen (`-`), the number provided will be relative to the detected terminal size. | ## Built-in Viewers | Files | Program | | -------------------- | --------------------------- | | Directories | `eza`, `ls` | | `*.tar`, `*.tar.gz` | `tar` | | `*.zip`, `*.jar` | `unzip` | | `*.gz` | `gunzip` | | `*.xz` | `xz` | ## External Viewers For file formats that aren't supported by default, an external file viewer can be added to `batpipe` through the external viewer API. External viewers are be added to batpipe by creating bash scripts inside the `~/.config/batpipe/viewers.d/` directory. ### Creating Viewers Viewers must define two functions and append the viewer's name to the `$BATPIPE_VIEWERS` array. - `viewer_${viewer}_supports [file_basename] [file_path] [inner_file_path]` - `viewer_${viewer}_process [file_path] [inner_file_path]` The `viewer_${viewer}_supports` function is called to determine if the external viewer is capable of viewing the provided file. If this function returns successfully, the corresponding `process` function will be called. ### API $BATPIPE_VIEWERS -- An array of loaded file viewers. $BATPIPE_ENABLE_COLOR -- Whether color is supported. (`true`|`false`) $BATPIPE_INSIDE_LESS -- Whether batpipe is inside less. (`true`|`false`) batpipe_header [pattern] [...] -- Print a viewer header line. batpipe_subheader [pattern] [...] -- Print a viewer subheader line. strip_trailing_slashes [path] -- Strips trailing slashes from a path. ## Caveats - By default, `batpipe` will not use colors when previewed inside `less`. Colors must be explicitly enabled with `BATPIPE=color`. ## Installation This script is a part of the `bat-extras` suite of scripts. You can find install instructions [here](../README.md#installation). ## Issues? If you find an issue or have a feature suggestion, make a pull request or issue through GitHub! Contributions are always welcome.