about summary refs log tree commit diff
path: root/pkgs/by-name/gl/glasskube/package.nix
diff options
context:
space:
mode:
authorJakuzure Nonon <shin@posteo.jp>2024-03-31 12:43:22 +0200
committerJakuzure Nonon <shin@posteo.jp>2024-03-31 12:48:50 +0200
commiteb8ba567a7b1524a3e26aa2d591e68f0573c9fb5 (patch)
tree852b7dbba3f5f196f931021856c04500a7c19fc4 /pkgs/by-name/gl/glasskube/package.nix
parent6aa88482a7465dd0fa9169e2778c1a2d6059aa1b (diff)
glasskube: fix missing bundles from npm
Diffstat (limited to 'pkgs/by-name/gl/glasskube/package.nix')
-rw-r--r--pkgs/by-name/gl/glasskube/package.nix49
1 files changed, 42 insertions, 7 deletions
diff --git a/pkgs/by-name/gl/glasskube/package.nix b/pkgs/by-name/gl/glasskube/package.nix
index 07942acbd6ba8..91d2dcceef7cf 100644
--- a/pkgs/by-name/gl/glasskube/package.nix
+++ b/pkgs/by-name/gl/glasskube/package.nix
@@ -1,31 +1,64 @@
 { lib
 , buildGoModule
+, buildNpmPackage
 , fetchFromGitHub
 , nix-update-script
 , installShellFiles
 }:
 
-buildGoModule rec {
-  pname = "glasskube";
+let
   version = "0.1.0";
-
-  src = fetchFromGitHub {
+  gitSrc = fetchFromGitHub {
     owner = "glasskube";
     repo = "glasskube";
     rev = "refs/tags/v${version}";
     hash = "sha256-iJjO4V2sK3e/SpDZ5Lfw7gILgZrI4CGg0wLLVKthGUE=";
   };
+  web-bundle = buildNpmPackage rec {
+    inherit version;
+    pname = "glasskube-web-bundle";
+
+    src = gitSrc;
+
+    npmDepsHash = "sha256-nv2ng8gUOi9K46bDuWt/Y3S6AJovUWaqM+8uGiu/QSs=";
+
+    dontNpmInstall = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir $out
+      mv internal/web/root/static/bundle $out
+
+      runHook postInstall
+    '';
+  };
+
+in buildGoModule rec {
+  inherit version;
+  pname = "glasskube";
+
+  src = gitSrc;
 
   vendorHash = "sha256-iFWcTzZP0DKJ9hrmfUWR4U/VX2zsR+3uojI+GRI2R3I=";
 
   CGO_ENABLED = 0;
 
-  ldflags = [ "-s" "-w" "-X github.com/glasskube/glasskube/internal/config.Version=${version}" "-X github.com/glasskube/glasskube/internal/config.Commit=${src.rev}" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/glasskube/glasskube/internal/config.Version=${version}"
+    "-X github.com/glasskube/glasskube/internal/config.Commit=${src.rev}"
+  ];
 
   subPackages = [ "cmd/${pname}" "cmd/package-operator" ];
 
   nativeBuildInputs = [ installShellFiles ];
 
+  preBuild = ''
+    cp -r ${web-bundle}/bundle internal/web/root/static/bundle
+  '';
+
   postInstall = ''
     # Completions
     installShellCompletion --cmd glasskube \
@@ -37,9 +70,11 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "The missing Package Manager for Kubernetes featuring a GUI and a CLI";
+    description =
+      "The missing Package Manager for Kubernetes featuring a GUI and a CLI";
     homepage = "https://github.com/glasskube/glasskube";
-    changelog = "https://github.com/glasskube/glasskube/releases/tag/v${version}";
+    changelog =
+      "https://github.com/glasskube/glasskube/releases/tag/v${version}";
     maintainers = with maintainers; [ jakuzure ];
     license = licenses.asl20;
     mainProgram = "glasskube";