1
0
Fork 0
nixos-config/home-manager/target.nix
2022-03-08 03:19:09 +01:00

18 lines
700 B
Nix

let
sources = import ../nix/sources.nix;
inherit (import sources.nixos-unstable {}) lib pkgs;
modes = import ./machines.nix;
home-manager = channel: import "${sources."${channel}"}/home-manager/home-manager.nix";
buildHomeManager = host: mode:
(home-manager (import ../channels.nix)."${host}".home-manager-channel {
confPath = ../home.nix;
confAttr = "${host}-${mode}";
})
.activationPackage;
buildModesForHost = host: modes:
pkgs.runCommandLocal "${host}-modes" {} ''
mkdir $out
${lib.concatStringsSep "\n" (lib.mapAttrsToList (mode: config: "ln -s ${buildHomeManager host mode} $out/${mode}") modes)}'';
in
lib.mapAttrs buildModesForHost modes