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