about summary refs log tree commit diff
path: root/pkgs/applications/misc/mainsail/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/misc/mainsail/default.nix')
-rw-r--r--pkgs/applications/misc/mainsail/default.nix34
1 files changed, 21 insertions, 13 deletions
diff --git a/pkgs/applications/misc/mainsail/default.nix b/pkgs/applications/misc/mainsail/default.nix
index 4f4c915050274..9ffdc79f04cb8 100644
--- a/pkgs/applications/misc/mainsail/default.nix
+++ b/pkgs/applications/misc/mainsail/default.nix
@@ -1,26 +1,34 @@
 { lib
-, stdenvNoCC
-, fetchzip
+, buildNpmPackage
+, fetchFromGitHub
 }:
 
-stdenvNoCC.mkDerivation rec {
+ buildNpmPackage rec {
   pname = "mainsail";
-  version = "2.10.0";
+  version = "2.11.2";
 
-  src = fetchzip {
-    url = "https://github.com/mainsail-crew/mainsail/releases/download/v${version}/mainsail.zip";
-    hash = "sha256-5bRmM/BXI0Afe7UK6avh5aWFXkYF4MsUG71uYUc5JlA=";
-    stripRoot = false;
+  src = fetchFromGitHub {
+      owner = "mainsail-crew";
+      repo = "mainsail";
+      rev = "v${version}";
+      hash = "sha256-N0tm36YMRRrkyuIwzcYbDo1DHesAnJ2s2g0KCms3h5I=";
   };
 
-  dontConfigure = true;
-  dontBuild = true;
+  npmDepsHash = "sha256-z6Fo0XAds/F0Ig+nUE3O16gmH0EVcpML3K8cdKhkJzg=";
+
+  # Prevent Cypress binary download.
+  CYPRESS_INSTALL_BINARY = 0;
+
+  preConfigure = ''
+    # Make the build.zip target do nothing, since we will just copy these files later.
+    sed -e 's/"build.zip":.*,$/"build.zip": "",/g' -i package.json
+  '';
 
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out/share/mainsail
-    cp -r ./* $out/share/mainsail
+    mkdir -p $out/share
+    cp -r ./dist $out/share/mainsail
 
     runHook postInstall
   '';
@@ -31,6 +39,6 @@ stdenvNoCC.mkDerivation rec {
     changelog = "https://github.com/mainsail-crew/mainsail/releases/tag/v${version}";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ shhht lovesegfault ];
+    maintainers = with maintainers; [ shhht lovesegfault wulfsta ];
   };
 }