nixos/home-assistant: account for "The Great Migration"
See https://developers.home-assistant.io/blog/2019/02/19/the-great-migration.html and https://github.com/NixOS/nixpkgs/issues/55958#issuecomment-466793526.
This commit is contained in:
parent
27fb4f46d2
commit
971187eada
1 changed files with 13 additions and 3 deletions
|
@ -29,14 +29,24 @@ let
|
|||
# platform = "luftdaten";
|
||||
# ...
|
||||
# } ];
|
||||
#
|
||||
# Beginning with 0.87 Home Assistant is migrating their components to the
|
||||
# scheme "platform.subComponent", e.g. "hue.light" instead of "light.hue".
|
||||
# See https://developers.home-assistant.io/blog/2019/02/19/the-great-migration.html.
|
||||
# Hence, we also check whether we find an entry in the config when interpreting
|
||||
# the first part of the path as the component.
|
||||
useComponentPlatform = component:
|
||||
let
|
||||
path = splitString "." component;
|
||||
# old: platform is the last part of path
|
||||
parentConfig = attrByPath (init path) null cfg.config;
|
||||
platform = last path;
|
||||
in isList parentConfig && any
|
||||
(item: item.platform or null == platform)
|
||||
parentConfig;
|
||||
# new: platform is the first part of the path
|
||||
parentConfig' = attrByPath (tail path) null cfg.config;
|
||||
platform' = head path;
|
||||
in
|
||||
(isList parentConfig && any (item: item.platform or null == platform) parentConfig)
|
||||
|| (isList parentConfig' && any (item: item.platform or null == platform') parentConfig');
|
||||
|
||||
# Returns whether component is used in config
|
||||
useComponent = component:
|
||||
|
|
Loading…
Reference in a new issue