1{
2 lib,
3 stdenvNoCC,
4 fetchFromGitHub,
5 nodejs,
6 pnpm_10,
7 nix-update-script,
8}:
9
10stdenvNoCC.mkDerivation (finalAttrs: {
11 pname = "opencloud-web";
12 version = "4.0.0";
13
14 src = fetchFromGitHub {
15 owner = "opencloud-eu";
16 repo = "web";
17 tag = "v${finalAttrs.version}";
18 hash = "sha256-IMFbDPVn32offVIHHxQvHjauQLGYnFf/s1mAo6OF7Mk=";
19 };
20
21 pnpmDeps = pnpm_10.fetchDeps {
22 inherit (finalAttrs) pname version src;
23 fetcherVersion = 1;
24 hash = "sha256-CHImAISDPhjfhB+Qj3fuo6jaOyi+wBVwuLm8ODzRU4M=";
25 };
26
27 nativeBuildInputs = [
28 nodejs
29 pnpm_10.configHook
30 ];
31
32 buildPhase = ''
33 runHook preBuild
34 pnpm build
35 runHook postBuild
36 '';
37
38 installPhase = ''
39 runHook preInstall
40 mkdir $out
41 cp -r dist/* $out
42 runHook postInstall
43 '';
44
45 passthru.updateScript = nix-update-script { };
46
47 meta = {
48 description = "Web UI for OpenCloud built with Vue.js and TypeScript";
49 homepage = "https://github.com/opencloud-eu/web";
50 changelog = "https://github.com/opencloud-eu/web/blob/${finalAttrs.src.tag}/CHANGELOG.md";
51 license = lib.licenses.agpl3Only;
52 maintainers = with lib.maintainers; [
53 christoph-heiss
54 k900
55 ];
56 platforms = lib.platforms.all;
57 };
58})