# SPDX-FileCopyrightText: 2023 David Mosbach # # SPDX-License-Identifier: AGPL-3.0-or-later { description = "Development environment for the Workflow Visualiser"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; haskell-flake.url = "github:srid/haskell-flake"; }; outputs = inputs@{ self, nixpkgs, flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { systems = nixpkgs.lib.systems.flakeExposed; imports = [ inputs.haskell-flake.flakeModule ]; perSystem = { self', pkgs, ... }: { haskellProjects.default = { # See https://zero-to-flakes.com/haskell-flake/package-set basePackages = pkgs.haskellPackages; # Extra package information. See https://zero-to-flakes.com/haskell-flake/dependency # # Note that local packages are automatically included in `packages` # (defined by `defaults.packages` option). # packages = { # aeson.source = "1.5.0.0"; # Hackage version override # shower.source = inputs.shower; ede.source = "0.3.3.0"; }; settings = { # aeson = { # check = false; # }; # relude = { # haddock = false; # broken = false; # }; ede.check = false; }; devShell = { enable = true; mkShellArgs = { shellHook = '' if command -v zsh &> /dev/null; then zsh && exit fi ''; buildInputs = with pkgs; [ nodejs_18 reuse ]; }; # Programs you want to make available in the shell. # Default programs can be disabled by setting to 'null' # tools = hp: { fourmolu = hp.fourmolu; ghcid = null; }; hlsCheck.enable = true; }; }; packages.default = self'.packages.workflow-visualiser; }; }; }