packages feed

tasty-bdd-0.1.0.2: flake.nix

{
  description = "Typed BDD scenarios for Tasty, built with GHC 9.12.3";
  nixConfig = {
    extra-substituters = [ "https://cache.iog.io" ];
    extra-trusted-public-keys =
      [ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" ];
  };
  inputs = {
    haskellNix.url =
      "github:input-output-hk/haskell.nix/8b447d7f57d62fab9249f79bb916bc891e29b9d0";
    hackageNix = {
      url =
        "github:input-output-hk/hackage.nix/b6b4aa4bd699f743238da45c7f43da5a26a822f7";
      flake = false;
    };
    haskellNix.inputs.hackage.follows = "hackageNix";
    nixpkgs.follows = "haskellNix/nixpkgs-unstable";
    lintNixpkgs.url =
      "github:NixOS/nixpkgs/647e5c14cbd5067f44ac86b74f014962df460840";
    mkdocs.url =
      "github:paolino/dev-assets/60fcec8ed6ec760e60cf92a41e6713d77ce49900?dir=mkdocs";
  };
  outputs = { nixpkgs, haskellNix, lintNixpkgs, mkdocs, ... }:
    let
      system = "x86_64-linux";
      pkgs = import nixpkgs {
        inherit system;
        overlays = [ haskellNix.overlay ];
      };
      lintPkgs = import lintNixpkgs { inherit system; };
      project = import ./nix/project.nix { inherit pkgs lintPkgs; };
      components = project.hsPkgs.tasty-bdd.components;
      sourceDist = import ./nix/source-dist.nix {
        pkgs = lintPkgs;
        src = ./.;
      };
      archiveProject = import ./nix/project.nix {
        inherit pkgs lintPkgs;
        src = "${sourceDist}/source";
      };
      checks = import ./nix/checks.nix {
        inherit pkgs lintPkgs components;
        inherit sourceDist;
        buildShell = project.shell;
        archiveComponents = archiveProject.hsPkgs.tasty-bdd.components;
        src = ./.;
        docsShell = mkdocs.devShells.${system}.default;
      };
    in {
      packages.${system} = {
        default = components.library;
        tests = components.tests.test;
        example = components.tests.example;
        docs = checks.docs;
        source-dist = sourceDist;
        hackage-release = checks.hackageRelease;
      };
      devShells.${system}.default = project.shell;
      checks.${system} =
        builtins.removeAttrs checks [ "apps" "hackageRelease" ];
      apps.${system} = builtins.mapAttrs (_: app: {
        type = "app";
        meta.description = "Run the tasty-bdd ${app.name} check";
        program = pkgs.lib.getExe app;
      }) checks.apps;
    };
}