diff options
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 58 |
1 files changed, 38 insertions, 20 deletions
@@ -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; |