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