about summary refs log tree commit diff
path: root/pkgs/by-name
diff options
context:
space:
mode:
authorAdam C. Stephens <2071575+adamcstephens@users.noreply.github.com>2024-03-11 15:42:04 -0400
committerGitHub <noreply@github.com>2024-03-11 15:42:04 -0400
commit09f211116ef48409031482ac14f847ca55ef002b (patch)
treeb90a6f54ba5e5c413f409c8c209e0640fa9200db /pkgs/by-name
parent93c6b3e1296203879d7637fed35ba79fa7262b3e (diff)
parentb7f315079317bafd646c5fa9a467e41bb1eb4585 (diff)
downloadnixlib-09f211116ef48409031482ac14f847ca55ef002b.tar
nixlib-09f211116ef48409031482ac14f847ca55ef002b.tar.gz
nixlib-09f211116ef48409031482ac14f847ca55ef002b.tar.bz2
nixlib-09f211116ef48409031482ac14f847ca55ef002b.tar.lz
nixlib-09f211116ef48409031482ac14f847ca55ef002b.tar.xz
nixlib-09f211116ef48409031482ac14f847ca55ef002b.tar.zst
nixlib-09f211116ef48409031482ac14f847ca55ef002b.zip
Merge pull request #294802 from mkg20001/incus-ui-split
incus.ui: upgrade zabbly patches, split from lxd
Diffstat (limited to 'pkgs/by-name')
-rw-r--r--pkgs/by-name/in/incus/ui.nix85
1 files changed, 70 insertions, 15 deletions
diff --git a/pkgs/by-name/in/incus/ui.nix b/pkgs/by-name/in/incus/ui.nix
index ebf052ed8782..705d715f0cfd 100644
--- a/pkgs/by-name/in/incus/ui.nix
+++ b/pkgs/by-name/in/incus/ui.nix
@@ -1,32 +1,87 @@
-{ lxd
+{ lib
+, stdenv
 , fetchFromGitHub
+, fetchYarnDeps
+, nodejs
+, prefetch-yarn-deps
+, yarn
+, nixosTests
 , git
 }:
 
-lxd.ui.overrideAttrs(prev: rec {
+stdenv.mkDerivation rec {
   pname = "incus-ui";
+  version = "0.6";
+
+  src = fetchFromGitHub {
+    owner = "canonical";
+    repo = "lxd-ui";
+    rev = "refs/tags/${version}";
+    hash = "sha256-3Ts6lKyzpMDVATCKD1fFIGTskWzWpQUT9S8cPFnlEOs=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    hash = "sha256-0pyxwMGGqogEe1w3sail8NUDHtxLQZU9Wg8E6rQNy4o=";
+  };
 
   zabbly = fetchFromGitHub {
     owner = "zabbly";
     repo = "incus";
-    rev = "8bbe23f42beedd845bd95069c06f4d0c85e450b6";
-    hash = "sha256-X0I8vrhvg5mLGAY8oEU/nr2pvDJ8ZqLUSY9WBqwmolE=";
+    rev = "3eabc1960e99e7e515916e3ea7068a412a8c420b";
+    hash = "sha256-Kw53Qjurc6WPswB38v6wuRhuuGE34uYxNoAKH4UmTBE=";
   };
 
-  nativeBuildInputs = prev.nativeBuildInputs ++ [
-    git
-  ];
-
   patchPhase = ''
-    for p in $zabbly/patches/ui-canonical*; do
+    for p in $zabbly/patches/ui-canonical*patch; do
       echo "applying patch $p"
       git apply -p1 "$p"
     done
-    sed -i "s/LXD/Incus/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
-    sed -i "s/devlxd/guestapi/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
-    sed -i "s/dev\/lxd/dev\/incus/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
-    sed -i "s/lxd_/incus_/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
-    sed -i "s/\"lxd\"/\"incus\"/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
+    sed -i -f "$zabbly/patches/ui-canonical-renames.sed" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
+  '';
+
+  nativeBuildInputs = [
+    nodejs
+    prefetch-yarn-deps
+    yarn
+    git
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
 
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    cp -r build/ui/ $out
+
+    runHook postInstall
   '';
-})
+
+  passthru.tests.default = nixosTests.incus.ui;
+
+  meta = {
+    description = "Web user interface for Incus, based on LXD webui";
+    homepage = "https://github.com/canonical/lxd-ui";
+    license = lib.licenses.gpl3;
+    maintainers = lib.teams.lxc.members;
+    platforms = lib.platforms.linux;
+  };
+}