mirror of
https://github.com/hercules-ci/flake-parts.git
synced 2024-12-14 11:47:31 +00:00
Add devShells
Not deprecating devShell yet.
This commit is contained in:
parent
184fe3d3b1
commit
6ec7dec1fb
2 changed files with 56 additions and 0 deletions
|
@ -4,6 +4,7 @@
|
|||
./modules/checks.nix
|
||||
./modules/darwinModules.nix
|
||||
./modules/devShell.nix
|
||||
./modules/devShells.nix
|
||||
./modules/flake.nix
|
||||
./modules/legacyPackages.nix
|
||||
./modules/nixosModules.nix
|
||||
|
|
55
modules/devShells.nix
Normal file
55
modules/devShells.nix
Normal file
|
@ -0,0 +1,55 @@
|
|||
{ config, lib, flake-modules-core-lib, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
filterAttrs
|
||||
mapAttrs
|
||||
mkOption
|
||||
optionalAttrs
|
||||
types
|
||||
;
|
||||
inherit (flake-modules-core-lib)
|
||||
mkSubmoduleOptions
|
||||
;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
flake = mkSubmoduleOptions {
|
||||
devShells = mkOption {
|
||||
type = types.lazyAttrsOf (types.lazyAttrsOf types.package);
|
||||
default = { };
|
||||
description = ''
|
||||
Per system an attribute set of packages used as shells.
|
||||
nix develop .#<name> will run devShells.<system>.<name>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
config = {
|
||||
flake.devShells =
|
||||
mapAttrs
|
||||
(k: v: v.devShells)
|
||||
(filterAttrs
|
||||
(k: v: v.devShells != null)
|
||||
config.allSystems
|
||||
);
|
||||
|
||||
perInput = system: flake:
|
||||
optionalAttrs (flake?devShells.${system}) {
|
||||
devShells = flake.devShells.${system};
|
||||
};
|
||||
|
||||
perSystem = system: { config, ... }: {
|
||||
_file = ./devShells.nix;
|
||||
options = {
|
||||
devShells = mkOption {
|
||||
type = types.lazyAttrsOf types.package;
|
||||
default = { };
|
||||
description = ''
|
||||
An attribute set of packages to be built by nix develop .#<name>.
|
||||
nix build .#<name> will run devShells.<name>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue