Commit 470ab4f9 authored by Guillaume Girol's avatar Guillaume Girol
Browse files

nixos/ibus: improve error message for non-engine packages

when setting the option i18n.inputMethod.ibus.engines to a non-engine, like this:
    i18n.inputMethod.ibus.engines = [ pkgs.sl ];

the error message would be quite misleading:

error: A definition for option `nodes.machine.i18n.inputMethod.ibus.engines."[definition 1-entry 1]"' is not of type `package'. Definition values:
- In `makeTest parameters': <derivation sl-5.05>

sl is rejected and yet it *is* a package.

This change improves the error message to this:
error: A definition for option `nodes.machine.i18n.inputMethod.ibus.engines."[definition 1-entry 1]"' is not of type `ibus-engine'. Definition values:
- In `makeTest parameters': <derivation sl-5.05>
parent ad57eef4
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -5,8 +5,9 @@ with lib;
let
  cfg = config.i18n.inputMethod.ibus;
  ibusPackage = pkgs.ibus-with-plugins.override { plugins = cfg.engines; };
  ibusEngine = types.package // {
  ibusEngine = lib.types.mkOptionType {
    name  = "ibus-engine";
    inherit (lib.types.package) descriptionClass merge;
    check = x: (lib.types.package.check x) && (attrByPath ["meta" "isIbusEngine"] false x);
  };