1{ lib, stdenv, fetchFromGitHub, postgresql }:
2
3with {
4 "12" = {
5 version = "1.4";
6 sha256 = "sha256-1cyvVEC9MQGMr7Tg6EUbsVBrMc8ahdFS3+CmDkmAq4Y=";
7 };
8 "13" = {
9 version = "1.4";
10 sha256 = "sha256-1cyvVEC9MQGMr7Tg6EUbsVBrMc8ahdFS3+CmDkmAq4Y=";
11 };
12 "14" = {
13 version = "1.5";
14 sha256 = "sha256-RRSpkWLFuif+6RCncnsb1NnjKnIIRY9KgebKkjCN5cs=";
15 };
16 "15" = {
17 version = "1.5";
18 sha256 = "sha256-RRSpkWLFuif+6RCncnsb1NnjKnIIRY9KgebKkjCN5cs=";
19 };
20 "16" = {
21 version = "1.5";
22 sha256 = "sha256-RRSpkWLFuif+6RCncnsb1NnjKnIIRY9KgebKkjCN5cs=";
23 };
24}."${lib.versions.major postgresql.version}" or (throw "pg_safeupdate: version specification for pg ${postgresql.version} missing.");
25
26stdenv.mkDerivation rec {
27 pname = "pg-safeupdate";
28 inherit version;
29
30 buildInputs = [ postgresql ];
31
32 src = fetchFromGitHub {
33 owner = "eradman";
34 repo = pname;
35 rev = version;
36 inherit sha256;
37 };
38
39 installPhase = ''
40 install -D safeupdate${postgresql.dlSuffix} -t $out/lib
41 '';
42
43 meta = with lib; {
44 description = "A simple extension to PostgreSQL that requires criteria for UPDATE and DELETE";
45 homepage = "https://github.com/eradman/pg-safeupdate";
46 changelog = "https://github.com/eradman/pg-safeupdate/raw/${src.rev}/NEWS";
47 platforms = postgresql.meta.platforms;
48 maintainers = with maintainers; [ wolfgangwalther ];
49 license = licenses.postgresql;
50 };
51}