64ab7d6e8d
* Add flake.lock and clean up flake.nix Add a lockfile to work around https://github.com/NixOS/nix/issues/6541 (and because it's a good idea anyway). Also use flake-utils, and restrict ourselves to the five platforms supported by nixpkgs. Otherwise, the IFD for nmd fails on weird platforms. This fixes `nix flake check`. Remove the redundant `apps` output, see https://github.com/nix-community/home-manager/pull/2442#issuecomment-1133670487 * nixos,nix-darwin: factor out into a common module * nixos,nix-darwin: make `home-managers.users` shallowly visible Make sure the option is included in the NixOS/nix-darwin manual (but the HM submodule options aren't). Also add a static description to the HM submodule type so that we don't need to evaluate the submodules just to build the option manual. This makes nixos-search able to index the home-manager flake. Also clean up some TODOs. * flake: add nmd and nmt This avoids having to use `pkgs.fetchFromGitLab` in an IFD, which causes issues when indexing packages with nixos-search because `pkgs` is instantiated with every platform.
32 lines
926 B
Nix
32 lines
926 B
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
|
|
cfg = config.home-manager;
|
|
|
|
in {
|
|
imports = [ ../integration-common.nix ];
|
|
|
|
config = mkMerge [
|
|
{ home-manager.extraSpecialArgs.darwinConfig = config; }
|
|
(mkIf (cfg.users != { }) {
|
|
system.activationScripts.postActivation.text = concatStringsSep "\n"
|
|
(mapAttrsToList (username: usercfg: ''
|
|
echo Activating home-manager configuration for ${username}
|
|
sudo -u ${username} -s --set-home ${
|
|
pkgs.writeShellScript "activation-${username}" ''
|
|
${lib.optionalString (cfg.backupFileExtension != null)
|
|
"export HOME_MANAGER_BACKUP_EXT=${
|
|
lib.escapeShellArg cfg.backupFileExtension
|
|
}"}
|
|
${lib.optionalString cfg.verbose "export VERBOSE=1"}
|
|
exec ${usercfg.home.activationPackage}/activate
|
|
''
|
|
}
|
|
'') cfg.users);
|
|
})
|
|
];
|
|
}
|