syndicate-flake/flake.nix

37 lines
1.2 KiB
Nix

{
description = "Syndicate utilities";
inputs.rust.url = "github:oxalica/rust-overlay";
outputs = { self, nixpkgs, rust }:
let
forEachSystem = nixpkgs.lib.genAttrs [ "aarch64-linux" "x86_64-linux" ];
libOverlay = import ./lib.nix;
in {
lib = nixpkgs.lib.extend libOverlay;
overlay = final: prev:
let rust' = (prev.extend rust.overlay).rust-bin.nightly.latest.default;
in {
lib = prev.lib.extend libOverlay;
preserves-nim = final.callPackage ./preserves-nim { };
preserves-tools =
final.callPackage ./preserves-tools { rust = rust'; };
syndicate-rs = final.callPackage ./syndicate-rs { rust = rust'; };
};
packages = forEachSystem (system:
let pkgs = nixpkgs.legacyPackages.${system}.extend self.overlay;
in with pkgs; { inherit preserves-nim preserves-tools syndicate-rs; });
nixosModules.syndicate-server =
# A little hack to apply our overlay to this module only.
let f = import ./nixos/syndicate-server.nix;
in { config, lib, pkgs, ... }:
f {
inherit config lib;
pkgs = pkgs.extend self.overlay;
};
};
}