mirror of
https://github.com/nix-community/flakelight.git
synced 2024-11-21 23:13:09 +01:00
Use submoduleWith instead of submodule
This results in not enabling shorthandOnlyDefinesConfig, allowing imports to be set in submodules. This can, for example, allow a devShell to import another devShell's config to extend it.
This commit is contained in:
parent
5fe9313894
commit
fe5916eb40
@ -8,16 +8,18 @@ let
|
||||
inherit (lib) defaultFunctor fix isFunction last mapAttrs mergeDefinitions
|
||||
mkIf mkMerge mkOption mkOptionType;
|
||||
inherit (lib.types) coercedTo enum lazyAttrsOf
|
||||
optionDescriptionPhrase pathInStore submodule;
|
||||
optionDescriptionPhrase pathInStore submoduleWith;
|
||||
inherit (flakelight.types) nullable optFunctionTo stringLike;
|
||||
|
||||
isStorePath = s: match "${storeDir}/[^.][^ \n]*" s != null;
|
||||
|
||||
app = submodule {
|
||||
app = submoduleWith {
|
||||
modules = [{
|
||||
options = {
|
||||
type = mkOption { type = enum [ "app" ]; default = "app"; };
|
||||
program = mkOption { type = pathInStore // { check = isStorePath; }; };
|
||||
};
|
||||
}];
|
||||
};
|
||||
|
||||
mkApp = name: pkgs: s:
|
||||
|
@ -6,7 +6,7 @@
|
||||
let
|
||||
inherit (lib) filterAttrs functionArgs mapAttrs mkIf mkMerge mkOption;
|
||||
inherit (lib.types) coercedTo lazyAttrsOf lines listOf
|
||||
package str submodule;
|
||||
package str submoduleWith;
|
||||
inherit (flakelight) supportedSystem;
|
||||
inherit (flakelight.types) function nullable optCallWith optFunctionTo;
|
||||
|
||||
@ -53,7 +53,7 @@ let
|
||||
|
||||
devShellType = coercedTo function wrapFn
|
||||
(optFunctionTo (coercedTo package packageOverride
|
||||
(submodule devShellModule)));
|
||||
(submoduleWith { modules = [ devShellModule ]; })));
|
||||
|
||||
genDevShell = pkgs: cfg:
|
||||
if cfg.overrideShell != null then cfg.overrideShell
|
||||
|
@ -400,6 +400,14 @@ in
|
||||
})
|
||||
(f: f ? devShells.x86_64-linux.default);
|
||||
|
||||
devShells-import = test
|
||||
(flakelight ./empty ({ config, ... }: {
|
||||
devShell.inputsFrom = pkgs: [ pkgs.emacs ];
|
||||
devShells.shell1 = pkgs: { imports = [ (config.devShell pkgs) ]; };
|
||||
}))
|
||||
(f: (lib.isDerivation f.devShells.x86_64-linux.default)
|
||||
&& (lib.isDerivation f.devShells.x86_64-linux.shell1));
|
||||
|
||||
overlay = test
|
||||
(flakelight ./empty {
|
||||
overlay = final: prev: { testValue = "hello"; };
|
||||
|
Loading…
Reference in New Issue
Block a user