---
name: "grok-pi-piper"
section: "1"
platform: "linux"
package: "grokmirror"
version: "2.0.12-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/grok-pi-piper"
---

# grok-pi-piper(1)

Hook script for piping new messages from public-inbox repos

## NAME

GROK-PI-PIPER - Hook script for piping new messages from public-inbox repos

## SYNOPSIS

grok-pi-piper \[-h\] \[-v\] \[-d\] -c CONFIG \[-l PIPELAST\] \[--version\] repo

## DESCRIPTION

This is a ready-made hook script that can be called from pull.post\_update\_hook when mirroring public-inbox repositories. It will pipe all newly received messages to arbitrary commands defined in the config file. The simplest configuration for lore.kernel.org is:

```
~/.config/pi-piper.conf
-----------------------
[DEFAULT]
pipe = /usr/bin/procmail
# Prune successfully processed messages
shallow = yes
~/.procmailrc
-------------
DEFAULT=$HOME/Maildir/
# Don't deliver cross-posted duplicates
:0 Wh: .msgid.lock
| formail -D 8192 .msgid.cache
~/.config/lore.conf
-------------------
[core]
toplevel = ~/.local/share/grokmirror/lore
log = ${toplevel}/grokmirror.log
[remote]
site = https://lore.kernel.org
manifest = https://lore.kernel.org/manifest.js.gz
[pull]
post_update_hook = ~/.local/bin/grok-pi-piper -c ~/.config/pi-piper.conf
include = /list-you-want/*
          /another-list/*
```

It assumes that grokmirror was installed from pip. If you installed it via some other means, please check the path for the grok-pi-piper script.

Note, that initial clone may take a long time, even if you set shallow=yes.

See pi-piper.conf for other config options.

## OPTIONS

- **-h, --help**

  show this help message and exit

- **-v, --verbose**

  Be verbose and tell us what you are doing (default: False)

- **-d, --dry-run**

  Do a dry-run and just show what would be done (default: False)

- **-c** *CONFIG,* **--config** *CONFIG*

  Location of the configuration file (default: None)

- **-l** *PIPELAST,* **--pipe-last** *PIPELAST*

  Force pipe last NN messages in the list, regardless of tracking (default: None)

- **--version**

  show program's version number and exit

## SEE ALSO

- •

  [grok-pull(1)](/grok-pull/1.md)

- •

  [git(1)](/git/1.md)

## SUPPORT

Email *tools@linux.kernel.org*.

## AUTHOR

mricon@kernel.org

License: GPLv3+

## COPYRIGHT

The Linux Foundation and contributors
