[PATCH 00/12] filter framework and lua integration: complete

Jason A. Donenfeld Jason at zx2c4.com
Mon Jan 13 05:11:07 CET 2014

The beginnings of the filter framework I merged yesterday. This is
the second half. It is a combination of my work and John's, and
allows for a variety of different types of filters to be used with
cgit. We support long lived ones as well as one-off ones, complete
with support for redirecting write(), cleanup functions, init
functions, and more...

This patch set begins with finishing the infrastructure for more
advanced filter types. Then I add lua support, during which time I
make a few changes to the infrastructure. I should have split this out
into a separate commit, but I didn't. It should be fairly straight-
forward though. Finally, this series ends with adding support for the
email-filter option and writing both an old style "exec:" script for
adding gravatars, as well as a new style "lua:" script for the same

We managed to do all of this in under 500 lines of additions, evidently.

Jason A. Donenfeld (9):
  filter: allow for cleanup hook for filter types
  filter: basic write hooking infrastructure
  filter: add preliminary lua support
  filter: document lua filter type
  filter: lua error reporting
  filter: return on null filter from open and close
  filter: add support for email filter
  filter: add simple gravatar email filter
  filter: add gravatar lua script

John Keeping (3):
  filter: add fprintf_filter function
  filter: add interface layer
  filter: introduce "filter type" prefix

 cgit.c                     |  15 +-
 cgit.h                     |  18 ++-
 cgit.mk                    |  13 +-
 cgitrc.5.txt               |  50 +++++++
 filter.c                   | 340 ++++++++++++++++++++++++++++++++++++++++++---
 filters/email-gravatar.lua |  25 ++++
 filters/email-gravatar.py  |  33 +++++
 shared.c                   |   1 +
 ui-commit.c                |  22 ++-
 ui-log.c                   |   2 +
 ui-refs.c                  |   9 +-
 ui-repolist.c              |   6 +-
 ui-snapshot.c              |  11 +-
 ui-summary.c               |   8 +-
 ui-tag.c                   |   2 +
 15 files changed, 499 insertions(+), 56 deletions(-)
 create mode 100644 filters/email-gravatar.lua
 create mode 100755 filters/email-gravatar.py


More information about the CGit mailing list