mirror of
https://github.com/nix-community/nix-on-droid.git
synced 2025-11-08 19:46:07 +01:00
nixpkgs: always provide the option definitions
This allows evaluation of configurations where nixpkgs.* options are used even when in a flake setup with unchanged default values.
This commit is contained in:
parent
7b9ba13632
commit
8972fbf3da
4 changed files with 36 additions and 11 deletions
|
|
@ -18,6 +18,7 @@ let
|
||||||
{
|
{
|
||||||
_module.args.home-manager = home-manager;
|
_module.args.home-manager = home-manager;
|
||||||
_module.args.pkgs = mkDefault pkgs;
|
_module.args.pkgs = mkDefault pkgs;
|
||||||
|
_module.args.isFlake = isFlake;
|
||||||
}
|
}
|
||||||
configModule
|
configModule
|
||||||
] ++ import ./module-list.nix { inherit pkgs isFlake; };
|
] ++ import ./module-list.nix { inherit pkgs isFlake; };
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,9 @@
|
||||||
./environment/path.nix
|
./environment/path.nix
|
||||||
./environment/session-init.nix
|
./environment/session-init.nix
|
||||||
./home-manager.nix
|
./home-manager.nix
|
||||||
|
./nixpkgs/options.nix
|
||||||
./time.nix
|
./time.nix
|
||||||
./user.nix
|
./user.nix
|
||||||
./version.nix
|
./version.nix
|
||||||
(pkgs.path + "/nixos/modules/misc/assertions.nix")
|
(pkgs.path + "/nixos/modules/misc/assertions.nix")
|
||||||
] ++ pkgs.lib.optionals (!isFlake) [ ./nixpkgs.nix ]
|
] ++ pkgs.lib.optionals (!isFlake) [ ./nixpkgs/config.nix ]
|
||||||
|
|
|
||||||
24
modules/nixpkgs/config.nix
Normal file
24
modules/nixpkgs/config.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# Copyright (c) 2019-2021, see AUTHORS. Licensed under MIT License, see LICENSE.
|
||||||
|
|
||||||
|
# Inspired by
|
||||||
|
# https://github.com/rycee/home-manager/blob/master/modules/misc/nixpkgs.nix
|
||||||
|
# (Copyright (c) 2017-2019 Robert Helgesson and Home Manager contributors,
|
||||||
|
# licensed under MIT License as well)
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
{
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = {
|
||||||
|
|
||||||
|
_module.args.pkgs = import <nixpkgs> (
|
||||||
|
filterAttrs (n: v: v != null) config.nixpkgs
|
||||||
|
);
|
||||||
|
|
||||||
|
nixpkgs.overlays = import ../../overlays;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
# Copyright (c) 2019-2020, see AUTHORS. Licensed under MIT License, see LICENSE.
|
# Copyright (c) 2019-2021, see AUTHORS. Licensed under MIT License, see LICENSE.
|
||||||
|
|
||||||
# Inspired by
|
# Inspired by
|
||||||
# https://github.com/rycee/home-manager/blob/master/modules/misc/nixpkgs.nix
|
# https://github.com/rycee/home-manager/blob/master/modules/misc/nixpkgs.nix
|
||||||
# (Copyright (c) 2017-2019 Robert Helgesson and Home Manager contributors,
|
# (Copyright (c) 2017-2019 Robert Helgesson and Home Manager contributors,
|
||||||
# licensed under MIT License as well)
|
# licensed under MIT License as well)
|
||||||
|
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, isFlake, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
|
|
@ -53,11 +53,6 @@ let
|
||||||
check = builtins.isFunction;
|
check = builtins.isFunction;
|
||||||
merge = lib.mergeOneOption;
|
merge = lib.mergeOneOption;
|
||||||
};
|
};
|
||||||
|
|
||||||
_pkgs = import <nixpkgs> (
|
|
||||||
filterAttrs (n: v: v != null) config.nixpkgs
|
|
||||||
);
|
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
@ -164,9 +159,13 @@ in
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
|
||||||
_module.args.pkgs = _pkgs;
|
assertions = [
|
||||||
|
{
|
||||||
nixpkgs.overlays = import ../overlays;
|
assertion = isFlake -> config.nixpkgs.config == null && (config.nixpkgs.overlays == null || config.nixpkgs.overlays == []);
|
||||||
|
message = "In a flake setup, the options nixpkgs.* should not be used. Instead, rely on the provided flake "
|
||||||
|
+ "outputs and pass in the necessary nixpkgs object.";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue