This also moves the pin for nixpkgs into flake.lock instead of our custom file. Even for the classic interface via default.nix, the pin will be loaded from flake.lock, thus everything stays in-sync.
51 lines
1.3 KiB
Nix
51 lines
1.3 KiB
Nix
{
|
|
description = "REST API for any Postgres database";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
|
};
|
|
|
|
nixConfig = {
|
|
extra-substituters = "https://postgrest.cachix.org";
|
|
extra-trusted-public-keys = "postgrest.cachix.org-1:icgW4R15fz1+LqvhPjt4EnX/r19AaqxiVV+1olwlZtI=";
|
|
};
|
|
|
|
outputs = { nixpkgs, ... }:
|
|
let
|
|
systems = [
|
|
"aarch64-darwin"
|
|
"aarch64-linux"
|
|
"x86_64-darwin"
|
|
"x86_64-linux"
|
|
];
|
|
|
|
pgrstFor = system: import ./default.nix {
|
|
inherit system;
|
|
nixpkgsVersion = {
|
|
owner = "nixos";
|
|
repo = "nixpkgs";
|
|
inherit (nixpkgs) rev;
|
|
tarballHash = nixpkgs.narHash;
|
|
};
|
|
};
|
|
|
|
genSystems = f: nixpkgs.lib.genAttrs systems (system: f (pgrstFor system));
|
|
in
|
|
{
|
|
packages = genSystems (attrs: {
|
|
default = attrs.postgrestPackage;
|
|
profiled = attrs.postgrestProfiled;
|
|
} // nixpkgs.lib.optionalAttrs (attrs ? postgrestStatic) {
|
|
static = attrs.postgrestStatic;
|
|
});
|
|
|
|
apps = genSystems (attrs: {
|
|
default = {
|
|
type = "app";
|
|
program = "${attrs.postgrestStatic or attrs.postgrestPackage}/bin/postgrest";
|
|
meta.description = "REST API for any Postgres database";
|
|
};
|
|
});
|
|
};
|
|
}
|