maid/flake.nix

62 lines
1.4 KiB
Nix
Raw Normal View History

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
utils.url = "github:numtide/flake-utils";
treefmt-nix.url = "github:numtide/treefmt-nix";
};
outputs = {
self,
nixpkgs,
utils,
treefmt-nix,
systems,
...
}:
utils.lib.eachDefaultSystem (
system: let
config = {};
overlay = pkgsNew: pkgsOld: {
maid =
pkgsNew.haskell.lib.justStaticExecutables
pkgsNew.haskellPackages.maid;
haskellPackages = pkgsOld.haskellPackages.override (old: {
overrides = pkgsNew.haskell.lib.packageSourceOverrides {
maid = ./.;
};
});
};
pkgs = import nixpkgs {
inherit config system;
overlays = [overlay];
};
treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
buildInputs = with pkgs; lib.optionals stdenv.isDarwin [libiconv darwin.apple_sdk.frameworks.Security];
in rec {
# For `nix fmt`
formatter = treefmtEval.config.build.wrapper;
# For `nix flake check`
checks = {
formatting = treefmtEval.config.build.check self;
};
packages.default = pkgs.haskellPackages.maid;
apps.default = {
type = "app";
program = "${pkgs.maid}/bin/maid";
};
devShells.default = pkgs.haskellPackages.maid.env;
}
);
}