|
15 | 15 | let
|
16 | 16 | supportedSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
17 | 17 | forAllSystems = f: nixpkgs.lib.genAttrs supportedSystems (system: f system);
|
18 |
| - in |
19 |
| - { |
20 |
| - defaultPackage = forAllSystems (system: (import nixpkgs { |
| 18 | + supportedPostgresVersions = [ 10 11 12 13 14 ]; |
| 19 | + nixpkgsWithOverlays = { system, nixpkgs, extraOverlays ? [ ] }: (import nixpkgs { |
21 | 20 | inherit system;
|
22 | 21 | overlays = [
|
23 | 22 | self.overlay
|
24 | 23 | rust-overlay.overlay
|
25 |
| - (self: super: |
26 |
| - { |
27 |
| - rustc = self.rust-bin.stable.latest.rustc; |
28 |
| - cargo = self.rust-bin.stable.latest.cargo; |
29 |
| - rustdoc = self.rust-bin.stable.latest.rustdoc; |
30 |
| - } |
31 |
| - ) |
32 |
| - ]; |
33 |
| - }).cargo-pgx); |
| 24 | + (self: super: { inherit (self.rust-bin.stable.latest) rustc cargo rustdoc; }) |
| 25 | + ] ++ extraOverlays; |
| 26 | + }); |
| 27 | + releaseAndDebug = attr: call: args: { |
| 28 | + "${attr}" = call args; |
| 29 | + "${attr}_debug" = call (args // { release = false; }); |
| 30 | + }; |
| 31 | + in |
| 32 | + { |
| 33 | + lib = { |
| 34 | + inherit supportedSystems supportedPostgresVersions forAllSystems nixpkgsWithOverlays; |
| 35 | + buildPgxExtension = { pkgs, source, pgxPostgresVersion, release ? true }: pkgs.callPackage ./nix/extension.nix { |
| 36 | + inherit source pgxPostgresVersion release naersk; |
| 37 | + inherit (gitignore.lib) gitignoreSource; |
| 38 | + }; |
| 39 | + }; |
| 40 | + defaultPackage = forAllSystems (system: (nixpkgsWithOverlays { inherit system nixpkgs; }).cargo-pgx); |
34 | 41 |
|
35 | 42 | packages = forAllSystems (system:
|
36 | 43 | let
|
37 |
| - pkgs = import nixpkgs { |
38 |
| - inherit system; |
39 |
| - overlays = [ |
40 |
| - self.overlay |
41 |
| - rust-overlay.overlay |
42 |
| - (self: super: |
43 |
| - { |
44 |
| - rustc = self.rust-bin.stable.latest.rustc; |
45 |
| - cargo = self.rust-bin.stable.latest.cargo; |
46 |
| - rustdoc = self.rust-bin.stable.latest.rustdoc; |
47 |
| - } |
48 |
| - ) |
49 |
| - ]; |
50 |
| - }; |
| 44 | + pkgs = nixpkgsWithOverlays { inherit system nixpkgs; }; |
51 | 45 | in
|
52 | 46 | {
|
53 | 47 | inherit (pkgs) cargo-pgx;
|
|
67 | 61 |
|
68 | 62 | devShell = forAllSystems (system:
|
69 | 63 | let
|
70 |
| - pkgs = import nixpkgs { |
71 |
| - inherit system; |
72 |
| - overlays = [ |
73 |
| - self.overlay |
74 |
| - rust-overlay.overlay |
75 |
| - (self: super: |
76 |
| - { |
77 |
| - rustc = self.rust-bin.stable.latest.rustc; |
78 |
| - cargo = self.rust-bin.stable.latest.cargo; |
79 |
| - rustdoc = self.rust-bin.stable.latest.rustdoc; |
80 |
| - } |
81 |
| - ) |
82 |
| - ]; |
83 |
| - }; |
| 64 | + pkgs = nixpkgsWithOverlays { inherit system nixpkgs; }; |
84 | 65 | in
|
85 | 66 | pkgs.mkShell {
|
86 | 67 | inputsFrom = with pkgs; [
|
|
112 | 93 |
|
113 | 94 | checks = forAllSystems (system:
|
114 | 95 | let
|
115 |
| - pkgs = import nixpkgs { |
116 |
| - inherit system; |
117 |
| - overlays = [ |
118 |
| - self.overlay |
119 |
| - rust-overlay.overlay |
120 |
| - (self: super: |
121 |
| - { |
122 |
| - rustc = self.rust-bin.stable.latest.rustc; |
123 |
| - cargo = self.rust-bin.stable.latest.cargo; |
124 |
| - rustdoc = self.rust-bin.stable.latest.rustdoc; |
125 |
| - } |
126 |
| - ) |
127 |
| - ]; |
128 |
| - }; |
| 96 | + pkgs = nixpkgsWithOverlays { inherit system nixpkgs; }; |
129 | 97 | in
|
130 | 98 | {
|
131 | 99 | format = pkgs.runCommand "check-format"
|
|
0 commit comments