rgrc 0.4.3

Rusty Generic Colouriser
Documentation
# rgrc - Rusty Generic Colouriser

[![Rust](https://img.shields.io/badge/rust-2024--edition-orange)](https://www.rust-lang.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A fast, Rust-based command-line tool that colorizes the output of other commands using regex-based rules. Drop-in replacement for `grc` with better performance.

## Features

- πŸš€ **Fast**: 10x faster than original grc
- 🎨 **Rich Colorization**: ANSI colors with count/replace support
- πŸ”§ **Compatible**: Works with existing grc configuration files
- 🐚 **Shell Integration**: Auto-generates aliases
- πŸ“– **80+ Commands**: Pre-configured for common tools

## Quick Start

### Installation

**Cargo:**
```bash
cargo install rgrc
```

**Homebrew:**
```bash
brew tap lazywalker/rgrc
brew install rgrc
```

**Arch Linux:**
```bash
yay -S rgrc
```


```bash
# Colorize any command
rgrc ping -c 4 google.com
rgrc docker ps
rgrc df -h

# Set up aliases (recommended)
echo 'eval "$(rgrc --aliases)"' >> ~/.bashrc
source ~/.bashrc

# Then use commands directly
ping -c 4 google.com  # automatically colorized
docker ps             # automatically colorized
```

## Supported Commands

**System**: `df`, `free`, `ps`, `top`, `vmstat`, `iostat`, `uptime`, `mount`
**Network**: `ping`, `traceroute`, `netstat`, `ss`, `ip`, `curl`, `dig`
**Development**: `gcc`, `make`, `docker`, `kubectl`, `git`, `mvn`, `go`
**Files**: `ls`, `find`, `du`, `fdisk`, `lsof`, `stat`

[See full list in share/ directory](share/)

## Options

```bash
rgrc [OPTIONS] COMMAND [ARGS...]

--color=on|off|auto     Control color output (default: auto)
--aliases               Generate shell aliases
--all-aliases           Generate all aliases
--except=CMD,...        Exclude commands from aliases
--completions SHELL     Print completion script (bash|zsh|fish|ash)
--version, -v           Show version
--help, -h              Show help
```

## Configuration

### Custom Rules

Create `~/.config/rgrc/conf.mycommand`:

```
regexp=^ERROR
colours=red,bold

regexp=^WARNING
colours=yellow

regexp=^INFO
colours=green
```

Add to `~/.rgrc`:
```
mycommand
conf.mycommand
```

### Shell Completions

```bash
# Bash
rgrc --completions bash > /etc/bash_completion.d/rgrc

# Zsh
rgrc --completions zsh > ~/.zfunc/_rgrc

# Fish
rgrc --completions fish > ~/.config/fish/completions/rgrc.fish
```

## Advanced Features

### Count/Replace

```
# Match only once per line
regexp=^\s*#
colours=cyan
count=once

# Replace matched text (with backreferences)
regexp=(ERROR|WARN|INFO)
colours=red,yellow,green
replace=[\1]

# Stop processing after match
regexp=^FATAL
colours=red,bold
count=stop
```

**Count options**: `once`, `more` (default), `stop`
**Replace**: Supports `\1`, `\2`, etc.

## Development

```bash
# Build
cargo build --release

# Test
cargo test

# Install locally
make release && sudo make install
```

## License

MIT - see [LICENSE](LICENSE) for details.

## Credits

Inspired by [grc](https://github.com/garabik/grc) by Radovan GarabΓ­k and [grc-rs](https://github.com/larsch/grc-rs) by Lars Christensen.