summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authorStefan Kreutz <mail@skreutz.com>2026-04-16 15:22:51 +0200
committerStefan Kreutz <mail@skreutz.com>2026-04-16 15:22:51 +0200
commitb5442f6657d4245866104989a1f75ec0a5fe06ed (patch)
tree3c855ff8abd4fae9750a3b19c28d57ce7c092f6b /flake.nix
parent4ee4e4e3e98479b98e5b92305f0ba3e6cff0c3c6 (diff)
downloadtemp-postgres-b5442f6657d4245866104989a1f75ec0a5fe06ed.tar.gz
Add PostgreSQL version-specific Nix packages
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix58
1 files changed, 38 insertions, 20 deletions
diff --git a/flake.nix b/flake.nix
index 7b2eb9c..2076939 100644
--- a/flake.nix
+++ b/flake.nix
@@ -30,28 +30,46 @@
let
version = builtins.head (lib.splitString "\n" (builtins.readFile ./version));
revision = lib.toString (self.shortRev or self.dirtyShortRev or "unknown");
+ mkPackage =
+ {
+ postgresql,
+ suffix ? "",
+ }:
+ pkgs.stdenv.mkDerivation {
+ name = "temp-postgres-${version}-${revision}${suffix}";
+ version = "${version}-${revision}";
+ src = lib.cleanSource (
+ builtins.path {
+ path = ./.;
+ name = "temp-postgres";
+ }
+ );
+ nativeBuildInputs = [ pkgs.makeBinaryWrapper ];
+ installPhase = ''
+ mkdir -p $out/bin
+ cp temp-postgres.sh $out/bin/temp-postgres
+ mkdir -p $out/man/man1
+ cp temp-postgres.1 $out/man/man1/temp-postgres.1
+ wrapProgram $out/bin/temp-postgres --prefix PATH : ${lib.makeBinPath [ postgresql ]}
+ '';
+ };
+ postgresqlVersions = lib.mapAttrs' (
+ name: drv:
+ let
+ postgresqlVersion = lib.removePrefix "postgresql_" name;
+ in
+ lib.nameValuePair "temp-postgres_${postgresqlVersion}" (mkPackage {
+ postgresql = drv;
+ suffix = "_${postgresqlVersion}";
+ })
+ ) pkgs.postgresqlVersions;
in
{
- packages.default = self'.packages.temp-postgres;
-
- packages.temp-postgres = pkgs.stdenv.mkDerivation {
- name = "temp-postgres-${version}-${revision}";
- version = "${version}-${revision}";
- src = lib.cleanSource (
- builtins.path {
- path = ./.;
- name = "temp-postgres";
- }
- );
- nativeBuildInputs = [ pkgs.makeBinaryWrapper ];
- installPhase = ''
- mkdir -p $out/bin
- cp temp-postgres.sh $out/bin/temp-postgres
- mkdir -p $out/man/man1
- cp temp-postgres.1 $out/man/man1/temp-postgres.1
- wrapProgram $out/bin/temp-postgres --prefix PATH : ${lib.makeBinPath [ pkgs.postgresql ]}
- '';
- };
+ packages = {
+ default = self'.packages.temp-postgres;
+ temp-postgres = mkPackage { postgresql = pkgs.postgresql; };
+ }
+ // postgresqlVersions;
formatter = pkgs.nixfmt-tree;
Generated by cgit. See skreutz.com for my tech blog and contact information.