syndicate-flake/flake.nix

67 lines
2.2 KiB
Nix
Raw Normal View History

2021-09-02 10:16:35 +00:00
{
description = "Syndicate utilities";
2021-09-02 10:16:35 +00:00
inputs.rust.url = "github:oxalica/rust-overlay";
2022-03-14 19:12:50 +00:00
outputs = { self, nixpkgs, rust }: {
lib = nixpkgs.lib.extend (import ./lib.nix);
overlays.default = final: prev:
let rust' = (prev.extend rust.overlay).rust-bin.nightly.latest.default;
in {
inherit (self) lib;
nimPackages = prev.nimPackages.overrideScope' (final': prev': {
preserves = final'.callPackage ./preserves-nim { };
2022-03-14 20:08:21 +00:00
syndicate = final'.callPackage ./syndicate-nim { };
2022-03-17 19:41:42 +00:00
xdg_open_ng = final'.callPackage ./xdg_open_ng { };
});
2021-09-02 10:16:35 +00:00
2022-03-14 19:13:50 +00:00
python3Packages = prev.python3Packages.override {
overrides = final': prev': {
preserves = final'.callPackage ./preserves-py { };
syndicate = final'.callPackage ./syndicate-py { };
};
};
2022-03-14 19:12:50 +00:00
preserves-tools = final.callPackage ./preserves-tools { rust = rust'; };
2022-03-25 14:34:50 +00:00
squeak = final.callPackage ./squeak { };
squeaker = final.python3Packages.callPackage ./squeaker { };
2022-03-14 19:12:50 +00:00
syndicate-server =
final.callPackage ./syndicate-server { rust = rust'; };
};
legacyPackages =
2022-03-16 19:22:35 +00:00
self.lib.mapAttrs (system: pkgs: pkgs.extend self.overlays.default)
(builtins.removeAttrs nixpkgs.legacyPackages [ "mipsel-linux" ]);
2022-03-14 19:12:50 +00:00
packages = self.lib.mapAttrs (system: pkgs:
with pkgs; {
2022-03-25 14:34:50 +00:00
inherit preserves-tools squeak squeaker syndicate-server;
2022-03-17 19:41:42 +00:00
inherit (nimPackages) xdg_open_ng;
2022-03-14 19:12:50 +00:00
preserves-nim = nimPackages.preserves;
2022-03-14 19:13:50 +00:00
preserves-py = python3Packages.preserves;
2022-03-17 19:41:42 +00:00
syndicate-nim = nimPackages.syndicate;
2022-03-14 19:13:50 +00:00
syndicate-py = python3Packages.syndicate;
2022-03-14 19:12:50 +00:00
}) self.legacyPackages;
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.overlays.default;
};
devShells = self.lib.mapAttrs (system: pkgs:
with pkgs; {
default =
mkShell { packages = builtins.attrValues self.packages.${system}; };
}) self.legacyPackages;
};
2021-09-02 10:16:35 +00:00
}