
Before, loading a module would be guarded by an optional platform condition. This made it possible to avoid loading and evaluating a module if it did not support the host platform. Unfortunately, this made it impossible to share a single configuration between GNU/Linux and Darwin hosts, which some wish to do. This removes the conditional load and instead inserts host platform assertions in the modules that are platform specific. Fixes #1906
15 lines
376 B
Nix
15 lines
376 B
Nix
{ lib }:
|
|
|
|
{
|
|
assertPlatform = module: pkgs: platforms: {
|
|
assertion = lib.elem pkgs.stdenv.hostPlatform.system platforms;
|
|
message = let
|
|
platformsStr = lib.concatStringsSep "\n"
|
|
(map (p: " - ${p}") (lib.sort (a: b: a < b) platforms));
|
|
in ''
|
|
The module ${module} does not support your platform. It only supports
|
|
|
|
${platformsStr}'';
|
|
};
|
|
}
|