67 lines
2.2 KiB
Nix
67 lines
2.2 KiB
Nix
{
|
|
description = "Syndicate utilities";
|
|
|
|
inputs.rust.url = "github:oxalica/rust-overlay";
|
|
|
|
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 { };
|
|
syndicate = final'.callPackage ./syndicate-nim { };
|
|
xdg_open_ng = final'.callPackage ./xdg_open_ng { };
|
|
});
|
|
|
|
python3Packages = prev.python3Packages.override {
|
|
overrides = final': prev': {
|
|
preserves = final'.callPackage ./preserves-py { };
|
|
syndicate = final'.callPackage ./syndicate-py { };
|
|
};
|
|
};
|
|
|
|
preserves-tools = final.callPackage ./preserves-tools { rust = rust'; };
|
|
|
|
squeak = final.callPackage ./squeak { };
|
|
squeaker = final.python3Packages.callPackage ./squeaker { };
|
|
|
|
syndicate-server =
|
|
final.callPackage ./syndicate-server { rust = rust'; };
|
|
};
|
|
|
|
legacyPackages =
|
|
self.lib.mapAttrs (system: pkgs: pkgs.extend self.overlays.default)
|
|
(builtins.removeAttrs nixpkgs.legacyPackages [ "mipsel-linux" ]);
|
|
|
|
packages = self.lib.mapAttrs (system: pkgs:
|
|
with pkgs; {
|
|
inherit preserves-tools squeak squeaker syndicate-server;
|
|
inherit (nimPackages) xdg_open_ng;
|
|
preserves-nim = nimPackages.preserves;
|
|
preserves-py = python3Packages.preserves;
|
|
syndicate-nim = nimPackages.syndicate;
|
|
syndicate-py = python3Packages.syndicate;
|
|
}) self.legacyPackages;
|
|
|
|
nixosModules.default = self.nixosModules.syndicate-server;
|
|
nixosModules.syndicate-server =
|
|
# A little hack to apply our overlay to this module only.
|
|
{ config, lib, pkgs, ... }:
|
|
(import ./nixos/syndicate-server.nix) {
|
|
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;
|
|
|
|
};
|
|
}
|