about summary refs log tree commit diff
path: root/pkgs/servers/mobilizon/frontend.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/mobilizon/frontend.nix')
-rw-r--r--pkgs/servers/mobilizon/frontend.nix42
1 files changed, 42 insertions, 0 deletions
diff --git a/pkgs/servers/mobilizon/frontend.nix b/pkgs/servers/mobilizon/frontend.nix
new file mode 100644
index 0000000000000..adfdbf3950561
--- /dev/null
+++ b/pkgs/servers/mobilizon/frontend.nix
@@ -0,0 +1,42 @@
+{ lib, callPackage, mkYarnPackage, fetchYarnDeps, imagemagick }:
+
+let
+  common = callPackage ./common.nix { };
+in
+mkYarnPackage rec {
+  src = "${common.src}/js";
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = src + "/yarn.lock";
+    sha256 = "sha256-yvId4NG1RABQd27RbSYki6AOFWWr5C97QPWEcnK77OE=";
+  };
+
+  packageJSON = ./package.json;
+
+  # Somehow $out/deps/mobilizon/node_modules ends up only containing nothing
+  # more than a .bin directory otherwise.
+  yarnPostBuild = ''
+    rm -rf $out/deps/mobilizon/node_modules
+    ln -s $out/node_modules $out/deps/mobilizon/node_modules
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn run build
+
+    runHook postBuild
+  '';
+
+  doCheck = true;
+  checkPhase = "yarn run test";
+
+  nativeBuildInputs = [ imagemagick ];
+
+  meta = with lib; {
+    description = "Frontend for the Mobilizon server";
+    homepage = "https://joinmobilizon.org/";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ minijackson erictapen ];
+  };
+}