2020-05-16 11:20:32 +00:00
|
|
|
let
|
2020-05-28 16:14:56 +00:00
|
|
|
sources = import ../nix/sources.nix;
|
2022-03-08 01:42:46 +00:00
|
|
|
inherit (import sources.nixos-unstable {}) lib pkgs;
|
2020-06-27 19:54:32 +00:00
|
|
|
modes = import ./machines.nix;
|
2022-03-08 02:19:09 +00:00
|
|
|
home-manager = channel: import "${sources."${channel}"}/home-manager/home-manager.nix";
|
2020-12-07 02:05:57 +00:00
|
|
|
buildHomeManager = host: mode:
|
2022-03-08 02:19:09 +00:00
|
|
|
(home-manager (import ../channels.nix)."${host}".home-manager-channel {
|
2020-05-16 15:08:57 +00:00
|
|
|
confPath = ../home.nix;
|
2020-12-07 02:05:57 +00:00
|
|
|
confAttr = "${host}-${mode}";
|
2022-03-08 01:42:46 +00:00
|
|
|
})
|
|
|
|
.activationPackage;
|
2020-10-18 18:15:13 +00:00
|
|
|
buildModesForHost = host: modes:
|
2022-03-08 01:42:46 +00:00
|
|
|
pkgs.runCommandLocal "${host}-modes" {} ''
|
2020-10-18 18:15:13 +00:00
|
|
|
mkdir $out
|
2022-03-08 01:42:46 +00:00
|
|
|
${lib.concatStringsSep "\n" (lib.mapAttrsToList (mode: config: "ln -s ${buildHomeManager host mode} $out/${mode}") modes)}'';
|
2021-05-18 14:33:28 +00:00
|
|
|
in
|
2022-03-08 01:42:46 +00:00
|
|
|
lib.mapAttrs buildModesForHost modes
|