Skip to content
This repository has been archived by the owner on Jan 29, 2022. It is now read-only.

supabase/pg_listen

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pg_listen: trigger a shell command on a Postgres event

Super fast and lightweight. Written in C using libpq.

Usage

pg_listen postgres://db-uri channel [/path/to/program] [args]

# for example, to note when NOTIFY happened on "hello" channel
# pg_listen postgres://localhost/postgres hello /bin/echo they said hi

# print payload from the channel
# (default action when no command is specified)
# pg_listen postgres://localhost/postgres fun

Note that pg_listen line-buffers its output, so the payload raised by NOTIFY needs to include a final newline ("\n"). The program won't output anything until a newline is encountered.

-- incorrect
NOTIFY foo, 'hi';

-- correct
NOTIFY foo, E'hi\n';

Building

For Supabase/KPS on Ubuntu use make kps

For everything else use:

Just clone the repo and run make. The makefile is compatible with BSD and GNU Make and requires only that libpq be installed on the system.

If you use NixOS you can run nix-shell to build it.

If you installed PostgreSQL on Mac using homebrew or Macports, note that pkg-config is not installed by default and needs to be installed by running brew install pkg-config prior to running make. Additionally you may need to update $PKG_CONFIG_PATH and add the directory containing libpq.pc for your system.

About

Trigger shell command from NOTIFY

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages

  • C 80.5%
  • Dockerfile 9.5%
  • Makefile 7.4%
  • Nix 2.6%