From 32c08ba0ca88d7021014d623aaf846d2606332fc Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 17 Jul 2024 15:05:27 +0200 Subject: [PATCH] esphome: build dashboard from source --- pkgs/tools/misc/esphome/dashboard.nix | 41 +++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/pkgs/tools/misc/esphome/dashboard.nix b/pkgs/tools/misc/esphome/dashboard.nix index 0b485ad49e6a..4f78863812e2 100644 --- a/pkgs/tools/misc/esphome/dashboard.nix +++ b/pkgs/tools/misc/esphome/dashboard.nix @@ -1,19 +1,48 @@ { lib , buildPythonPackage -, fetchPypi +, fetchFromGitHub +, fetchNpmDeps + +# build-system +, setuptools +, nodejs +, npmHooks + }: buildPythonPackage rec { pname = "esphome-dashboard"; version = "20240620.0"; - format = "setuptools"; + pyproject = true; - src = fetchPypi { - pname = "esphome_dashboard"; - inherit version; - hash = "sha256-lx3i8Z2PUefyibCNiQ4zPEwfgXr6r/TVa9TBF0YE5fA="; + src = fetchFromGitHub { + owner = "esphome"; + repo = "dashboard"; + rev = "refs/tags/${version}"; + hash = "sha256-LmIxfX3rcRK90h31J0B5T02f48MCctFERgXxf0zkDm0="; }; + npmDeps = fetchNpmDeps { + inherit src; + hash = "sha256-xMVESS1bPNJF07joUgY8ku+GWtflWhM8mYAv0emggc8="; + }; + + build-system = [ setuptools ]; + + nativeBuildInputs = [ + nodejs + npmHooks.npmConfigHook + ]; + + postPatch = '' + # https://github.com/esphome/dashboard/pull/639 + patchShebangs script/build + ''; + + preBuild = '' + script/build + ''; + # no tests doCheck = false;