evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / in / incus / ui.nix
blob5d2d248d6940e17ed0385acca55fa6b04bfba14f
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , fetchYarnDeps
5 , nodejs
6 , fixup-yarn-lock
7 , yarn
8 , nixosTests
9 , git
12 stdenv.mkDerivation rec {
13   pname = "incus-ui";
14   version = "0.7";
16   src = fetchFromGitHub {
17     owner = "canonical";
18     repo = "lxd-ui";
19     rev = "refs/tags/${version}";
20     hash = "sha256-DJLkXZpParmEYHbTpl6KFC9l9y5DqzUTrC0pb2dJXI4=";
21   };
23   offlineCache = fetchYarnDeps {
24     yarnLock = "${src}/yarn.lock";
25     hash = "sha256-ckTWE/czzvxbGOF8fsJ3W1sal7+NaHquoSjZSPjkGj4=";
26   };
28   zabbly = fetchFromGitHub {
29     owner = "zabbly";
30     repo = "incus";
31     rev = "c83023587eb0e3b01c99ba26e63f757ac15c6f9c";
32     hash = "sha256-cWKp4ALrae6nEBLvWcOM1T+Aca7eHLwsRguH9aSb10Y=";
33   };
35   patchPhase = ''
36     for p in $zabbly/patches/ui-canonical*patch; do
37       echo "applying patch $p"
38       git apply -p1 "$p"
39     done
40     sed -i -f "$zabbly/patches/ui-canonical-renames.sed" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
41   '';
43   nativeBuildInputs = [
44     nodejs
45     fixup-yarn-lock
46     yarn
47     git
48   ];
50   configurePhase = ''
51     runHook preConfigure
53     export HOME=$(mktemp -d)
54     yarn config --offline set yarn-offline-mirror "$offlineCache"
55     fixup-yarn-lock yarn.lock
56     yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
57     patchShebangs node_modules
59     runHook postConfigure
60   '';
62   buildPhase = ''
63     runHook preBuild
65     yarn --offline build
67     runHook postBuild
68   '';
70   installPhase = ''
71     runHook preInstall
73     cp -r build/ui/ $out
75     runHook postInstall
76   '';
78   passthru.tests.default = nixosTests.incus.ui;
80   meta = {
81     description = "Web user interface for Incus, based on LXD webui";
82     homepage = "https://github.com/canonical/lxd-ui";
83     license = lib.licenses.gpl3;
84     maintainers = lib.teams.lxc.members;
85     platforms = lib.platforms.linux;
86   };