Newer
Older
{
description = "Horizon Haskell: Moon Base";
inputs = {
horizon-platform.url = "git+https://gitlab.horizon-haskell.net/package-sets/horizon-platform";
lint-utils.url = "git+https://gitlab.homotopic.tech/nix/lint-utils";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
};
outputs =
inputs@
{ self
, flake-utils
, horizon-platform
, lint-utils
, nixpkgs
, ...
}:
flake-utils.lib.eachSystem [ "aarch64-darwin" "x86_64-darwin" "x86_64-linux" ] (system:
let
pkgs = import nixpkgs { inherit system; };
in
with pkgs.lib;
let
overrides = composeManyExtensions [
(import ./overlay.nix { inherit pkgs; })
];
legacyPackages = horizon-platform.legacyPackages.${system}.extend overrides;
packages = filterAttrs (_: isDerivation) legacyPackages;
horizon-hoogle = pkgs.writers.writeBashBin "horizon-hoogle" ''
${legacyPackages.ghcWithHoogle (p: attrValues (packages // { hoogle = null; }))}/bin/hoogle server --local
'';
in
{
apps = {
run-hoogle = {
type = "app";
program = "${horizon-hoogle}/bin/horizon-hoogle";
checks = with lint-utils.outputs.linters.${system}; {
dhall-format = dhall-format { src = self; };
nixpkgs-fmt = nixpkgs-fmt { src = self; find = "flake.nix"; };
};
inherit legacyPackages;
inherit packages;
});