Files
nixpkgs/pkgs/servers/sql/postgresql/pg_config.nix
Wolfgang Walther f8bc00efc5 postgresql.pg_config: make overrideable
This allows `postgresql.withPackages` to easily override the paths to
the default and man outputs for `pg_config`. It avoids all
`buildEnv`-dev-output hackery, which it didn't properly support, and
separates the logic cleanly.
2025-08-04 16:53:01 +02:00

36 lines
898 B
Nix

{
diffutils,
lib,
replaceVarsWith,
runtimeShell,
stdenv,
# PostgreSQL package
finalPackage,
# PostgreSQL package's outputs
outputs,
}:
replaceVarsWith {
name = "pg_config";
src = ./pg_config.sh;
dir = "bin";
isExecutable = true;
replacements = {
inherit runtimeShell;
"pg_config.env" = replaceVarsWith {
name = "pg_config.env";
src = "${lib.getDev finalPackage}/nix-support/pg_config.env";
replacements = outputs;
};
};
nativeCheckInputs = [
diffutils
];
# The expected output only matches when outputs have *not* been altered by postgresql.withPackages.
postCheck = lib.optionalString (outputs.out == lib.getOutput "out" finalPackage) ''
if [ -e ${lib.getDev finalPackage}/nix-support/pg_config.expected ]; then
diff ${lib.getDev finalPackage}/nix-support/pg_config.expected <($out/bin/pg_config)
fi
'';
}