diff --git a/subprojects/wrapper-manager-fds/modules/env/common.nix b/subprojects/wrapper-manager-fds/modules/env/common.nix index 8313d99f..2f65de29 100644 --- a/subprojects/wrapper-manager-fds/modules/env/common.nix +++ b/subprojects/wrapper-manager-fds/modules/env/common.nix @@ -1,4 +1,4 @@ -{ config, lib, ... }: +{ config, lib, pkgs, ... }: let cfg = config.wrapper-manager; @@ -7,6 +7,7 @@ let description = "wrapper-manager module"; class = "wrapperManager"; specialArgs = cfg.extraSpecialArgs // { + inherit pkgs; modulesPath = builtins.toString ../wrapper-manager; }; modules = [ @@ -18,6 +19,13 @@ let }; in { + imports = [ + # Bringing all of the arguments from the wrapper-manager environment for + # convenience. It would also allow its users for full control without using + # the integration module itself. + ../wrapper-manager/extra-args.nix + ]; + options.wrapper-manager = { sharedModules = lib.mkOption { type = with lib.types; listOf deferredModule; diff --git a/subprojects/wrapper-manager-fds/modules/env/home-manager/default.nix b/subprojects/wrapper-manager-fds/modules/env/home-manager/default.nix index e92431bb..7f7b8778 100644 --- a/subprojects/wrapper-manager-fds/modules/env/home-manager/default.nix +++ b/subprojects/wrapper-manager-fds/modules/env/home-manager/default.nix @@ -8,14 +8,12 @@ in ../common.nix ]; - options.wrapper-manager.wrappers = lib.mkOption { - type = lib.types.submoduleWith { - specialArgs.hmConfig = config; - }; - }; + config = lib.mkMerge [ + { wrapper-manager.extraSpecialArgs.hmConfig = config; } - config = lib.mkIf (cfg.wrappers != {}) { - home.packages = - lib.mapAttrsToList (_: wrapper: wrapper.config.build.toplevel) cfg.wrappers; - }; + (lib.mkIf (cfg.wrappers != {}) { + home.packages = + lib.mapAttrsToList (_: wrapper: wrapper.build.toplevel) cfg.wrappers; + }) + ] ; } diff --git a/subprojects/wrapper-manager-fds/modules/env/nixos/default.nix b/subprojects/wrapper-manager-fds/modules/env/nixos/default.nix index abe16d58..a020ed06 100644 --- a/subprojects/wrapper-manager-fds/modules/env/nixos/default.nix +++ b/subprojects/wrapper-manager-fds/modules/env/nixos/default.nix @@ -8,14 +8,12 @@ in ../common.nix ]; - options.wrapper-manager.wrappers = lib.mkOption { - type = lib.types.submoduleWith { - specialArgs.nixosConfig = config; - }; - }; + config = lib.mkMerge [ + { wrapper-manager.extraSpecialArgs.nixosConfig = config; } - config = lib.mkIf (cfg.wrappers != {}) { - environment.systemPackages = - lib.mapAttrsToList (_: wrapper: wrapper.config.build.toplevel) cfg.wrappers; - }; + (lib.mkIf (cfg.wrappers != {}) { + environment.systemPackages = + lib.mapAttrsToList (_: wrapper: wrapper.build.toplevel) cfg.wrappers; + }) + ]; }