{ 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}'';
  };
}
