1{ lib, stdenv, fetchFromGitHub, postgresql, postgresqlTestHook }:
2
3stdenv.mkDerivation rec {
4 pname = "plpgsql-check";
5 version = "2.7.5";
6
7 src = fetchFromGitHub {
8 owner = "okbob";
9 repo = "plpgsql_check";
10 rev = "v${version}";
11 hash = "sha256-CD/G/wX6o+mC6gowlpFe1DdJWyh3cB9wxSsW2GXrENE=";
12 };
13
14 buildInputs = [ postgresql ];
15
16 installPhase = ''
17 install -D -t $out/lib *${postgresql.dlSuffix}
18 install -D -t $out/share/postgresql/extension *.sql
19 install -D -t $out/share/postgresql/extension *.control
20 '';
21
22 passthru.tests.extension = stdenv.mkDerivation {
23 name = "plpgsql-check-test";
24 dontUnpack = true;
25 doCheck = true;
26 buildInputs = [ postgresqlTestHook ];
27 nativeCheckInputs = [ (postgresql.withPackages (ps: [ ps.plpgsql_check ])) ];
28 postgresqlTestUserOptions = "LOGIN SUPERUSER";
29 failureHook = "postgresqlStop";
30 checkPhase = ''
31 runHook preCheck
32 psql -a -v ON_ERROR_STOP=1 -c "CREATE EXTENSION plpgsql_check;"
33 runHook postCheck
34 '';
35 installPhase = "touch $out";
36 };
37
38 meta = with lib; {
39 description = "Linter tool for language PL/pgSQL";
40 homepage = "https://github.com/okbob/plpgsql_check";
41 changelog = "https://github.com/okbob/plpgsql_check/releases/tag/v${version}";
42 platforms = postgresql.meta.platforms;
43 license = licenses.mit;
44 maintainers = [ ];
45 };
46}