about summary refs log tree commit diff
path: root/pkgs/servers
diff options
context:
space:
mode:
authorMartin Weinelt <hexa@darmstadt.ccc.de>2023-01-12 06:06:41 +0100
committerMartin Weinelt <hexa@darmstadt.ccc.de>2023-01-26 01:00:17 +0100
commit7a73ad278fe1db625c1459d27ef3ccc34a93dbcb (patch)
tree4aeb007aaa034d0e421dc31712cfb15b9214bf1a /pkgs/servers
parent4ac0c94384f3fa86725e64473cfcda773f771b55 (diff)
home-assistant.intents: init at 2023.1.25
Diffstat (limited to 'pkgs/servers')
-rw-r--r--pkgs/servers/home-assistant/default.nix4
-rw-r--r--pkgs/servers/home-assistant/intents.nix67
2 files changed, 70 insertions, 1 deletions
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index b1af7ca2e4aed..024c023d35052 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -297,8 +297,9 @@ let
         };
       });
 
-      # home-assistant-frontend does not exist in python3.pkgs
+      # internal python packages only consumed by home-assistant itself
       home-assistant-frontend = self.callPackage ./frontend.nix { };
+      home-assistant-intents = self.callPackage ./intents.nix { };
     })
   ];
 
@@ -496,6 +497,7 @@ in python.pkgs.buildPythonApplication rec {
       getPackages
       python
       supportedComponentsWithTests;
+    intents = python.pkgs.home-assistant-intents;
     tests = {
       nixos = nixosTests.home-assistant;
       components = callPackage ./tests.nix { };
diff --git a/pkgs/servers/home-assistant/intents.nix b/pkgs/servers/home-assistant/intents.nix
new file mode 100644
index 0000000000000..d7ed384e8d537
--- /dev/null
+++ b/pkgs/servers/home-assistant/intents.nix
@@ -0,0 +1,67 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, setuptools
+
+# build
+, hassil
+, jinja2
+, pyyaml
+, regex
+, voluptuous
+, python
+
+# tests
+, pytest-xdist
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "home-assistant-intents";
+  version = "2023.1.25";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "home-assistant";
+    repo = "intents";
+    rev = "refs/tags/${version}";
+    hash = "sha256-nMEcN2b0XHF4yRRsHKMplxqcMLl+gJcPAdvwnySN+ug=";
+  };
+
+  sourceRoot = "source/package";
+
+  nativeBuildInputs = [
+    hassil
+    jinja2
+    pyyaml
+    regex
+    setuptools
+    voluptuous
+  ];
+
+  postInstall = ''
+    pushd ..
+    # https://github.com/home-assistant/intents/blob/main/script/package#L18
+    ${python.interpreter} -m script.intentfest merged_output $out/${python.sitePackages}/home-assistant-intents/home_assistant_intents/data
+    popd
+  '';
+
+  checkInputs = [
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "../tests"
+  ];
+
+  meta = with lib; {
+    description = "Intents to be used with Home Assistant";
+    homepage = "https://github.com/home-assistant/intents";
+    license = licenses.cc-by-40;
+    maintainers = teams.home-assistant.members;
+  };
+}