about summary refs log tree commit diff
path: root/pkgs/servers/sql
diff options
context:
space:
mode:
authorEuan Kemp <euank@euank.com>2022-05-17 22:34:41 +0000
committerEuan Kemp <euank@euank.com>2022-05-17 22:47:12 +0000
commit4720f3ac737e7db54f487f89be4479bc6da659fc (patch)
tree8245df585230bb4c8c827e702012b77c11de18ec /pkgs/servers/sql
parent3fb4aa63b41433b0c424f65375f20ac7612580df (diff)
postgresqlPackages.wal2json: init at 2.4
Diffstat (limited to 'pkgs/servers/sql')
-rw-r--r--pkgs/servers/sql/postgresql/ext/wal2json.nix31
-rw-r--r--pkgs/servers/sql/postgresql/packages.nix2
2 files changed, 33 insertions, 0 deletions
diff --git a/pkgs/servers/sql/postgresql/ext/wal2json.nix b/pkgs/servers/sql/postgresql/ext/wal2json.nix
new file mode 100644
index 0000000000000..d00e3a175328c
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/wal2json.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, bison, flex, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "wal2json";
+  version = "2.4";
+
+  src = fetchFromGitHub {
+    owner = "eulerto";
+    repo = "wal2json";
+    rev = "wal2json_${builtins.replaceStrings ["."] ["_"] version}";
+    sha256 = "sha256-EB+tCaILWsU9fDhqosl6EyMoYBd6SHISFfyxiZ9pNOk=";
+  };
+
+  buildInputs = [ postgresql ];
+
+  makeFlags = [ "USE_PGXS=1" ];
+
+  installPhase = ''
+    install -D -t $out/lib *.so
+    install -D -t $out/share/postgresql/extension sql/*.sql
+  '';
+
+  meta = with lib; {
+    description = "PostgreSQL JSON output plugin for changeset extraction";
+    homepage = "https://github.com/eulerto/wal2json";
+    changelog = "https://github.com/eulerto/wal2json/releases/tag/wal2json_${version}";
+    maintainers = with maintainers; [ euank ];
+    platforms = postgresql.meta.platforms;
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/packages.nix b/pkgs/servers/sql/postgresql/packages.nix
index c789e92c8e3c9..775dee206edf7 100644
--- a/pkgs/servers/sql/postgresql/packages.nix
+++ b/pkgs/servers/sql/postgresql/packages.nix
@@ -65,4 +65,6 @@ self: super: {
     repmgr = super.callPackage ./ext/repmgr.nix { };
 
     rum = super.callPackage ./ext/rum.nix { };
+
+    wal2json = super.callPackage ./ext/wal2json.nix { };
 }