smooooth/flake.nix
2025-05-25 01:43:14 +10:00

70 lines
1.6 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nix-systems.url = "github:nix-systems/default-linux";
};
outputs =
inputs:
with inputs;
let
get = builtins.attrValues;
forAllSystems =
function:
nixpkgs.lib.genAttrs (import nix-systems) (system: function nixpkgs.legacyPackages.${system});
deps = forAllSystems (pkgs: {
dev = get {
inherit (pkgs) just;
inherit (pkgs.ocamlPackages)
utop
dune_3
ocaml-lsp
ocamlformat
ocamlformat-rpc-lib
;
};
build =
get {
inherit (pkgs.ocamlPackages)
ocaml
lwt
lwt_ppx
inotify
angstrom
systemd
yojson
ppx_deriving_yojson
;
}
++ [ self.packages.${pkgs.system}.obus ];
});
in
{
devShells = forAllSystems (pkgs: {
default = import ./shell.nix {
inherit pkgs;
deps = deps.${pkgs.system};
};
});
packages = forAllSystems (pkgs: {
default = pkgs.callPackage ./default.nix {
buildInputs = deps.${pkgs.system}.build;
};
obus = pkgs.callPackage ./nix/obus.nix { };
});
nixosModules.smooooth =
{
config,
pkgs,
lib,
...
}:
{
imports = [ ./module.nix ];
services.smooooth.package = self.packages.${pkgs.system}.default;
};
};
}