modules: Accept a path-like for home-manager

We don't actually use the initialized attrset for anything
other than its path.
This commit is contained in:
Zhaofeng Li 2021-12-03 09:32:29 -08:00 committed by Alexander Sosedkin
parent 8972fbf3da
commit b1086df532
2 changed files with 8 additions and 4 deletions

View file

@ -1,12 +1,16 @@
# Copyright (c) 2019-2020, see AUTHORS. Licensed under MIT License, see LICENSE.
{ pkgs ? import <nixpkgs> { }, home-manager ? import <home-manager> { }, config ? null, isFlake ? false }:
{ pkgs ? import <nixpkgs> { }, home-manager ? <home-manager>, config ? null, isFlake ? false }:
with pkgs.lib;
let
defaultConfigFile = "${builtins.getEnv "HOME"}/.config/nixpkgs/nix-on-droid.nix";
hmPath = if home-manager ? install then
pkgs.lib.warn "Passing an initialized home-manager is useless - The overridden pkgs will not be used" home-manager.path
else home-manager;
configModule =
if config != null then config
else if builtins.pathExists defaultConfigFile then defaultConfigFile
@ -16,7 +20,7 @@ let
rawModule = evalModules {
modules = [
{
_module.args.home-manager = home-manager;
_module.args.home-manager = hmPath;
_module.args.pkgs = mkDefault pkgs;
_module.args.isFlake = isFlake;
}

View file

@ -7,13 +7,13 @@ with lib;
let
cfg = config.home-manager;
extendedLib = import (home-manager.path + "/modules/lib/stdlib-extended.nix") pkgs.lib;
extendedLib = import (home-manager + "/modules/lib/stdlib-extended.nix") pkgs.lib;
hmModule = types.submoduleWith {
specialArgs = { lib = extendedLib; };
modules = [
({ name, ... }: {
imports = import (home-manager.path + "/modules/modules.nix") {
imports = import (home-manager + "/modules/modules.nix") {
inherit pkgs;
lib = extendedLib;
useNixpkgsModule = !cfg.useGlobalPkgs;