nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 cargo-tauri,
6 jq,
7 libsoup_3,
8 moreutils,
9 nodejs,
10 openssl,
11 pkg-config,
12 pnpm_9,
13 fetchPnpmDeps,
14 pnpmConfigHook,
15 rustPlatform,
16 webkitgtk_4_1,
17 wrapGAppsHook3,
18 nix-update-script,
19}:
20stdenv.mkDerivation (finalAttrs: {
21 pname = "wealthfolio";
22 version = "2.1.0";
23
24 src = fetchFromGitHub {
25 owner = "afadil";
26 repo = "wealthfolio";
27 rev = "v${finalAttrs.version}";
28 hash = "sha256-pLiSidcuRTcykHDgW2pw+h0t/42g6u3LlioSEDA0lIo=";
29 };
30
31 pnpmDeps = fetchPnpmDeps {
32 inherit (finalAttrs) src pname version;
33 pnpm = pnpm_9;
34 fetcherVersion = 1;
35 hash = "sha256-TcoyNIVb/aDgXIsNDvzTMfsewmefU9ck+uSHv/tbH/k=";
36 };
37
38 cargoRoot = "src-tauri";
39 buildAndTestSubdir = finalAttrs.cargoRoot;
40
41 cargoDeps = rustPlatform.fetchCargoVendor {
42 inherit (finalAttrs)
43 pname
44 version
45 src
46 cargoRoot
47 ;
48 hash = "sha256-R6lU4BPFlFxQqxmP5EWQsYwe1QGIlKVhp/iNiD9pKQo=";
49 };
50
51 nativeBuildInputs = [
52 cargo-tauri.hook
53 jq
54 moreutils
55 nodejs
56 pkg-config
57 pnpmConfigHook
58 pnpm_9
59 rustPlatform.cargoSetupHook
60 wrapGAppsHook3
61 ];
62
63 buildInputs = [
64 libsoup_3
65 openssl
66 webkitgtk_4_1
67 ];
68
69 postPatch = ''
70 jq \
71 '.plugins.updater.endpoints = [ ]
72 | .bundle.createUpdaterArtifacts = false' \
73 src-tauri/tauri.conf.json \
74 | sponge src-tauri/tauri.conf.json
75 '';
76
77 passthru.updateScript = nix-update-script { };
78
79 meta = {
80 description = "Beautiful Private and Secure Desktop Investment Tracking Application";
81 homepage = "https://wealthfolio.app/";
82 license = lib.licenses.agpl3Only;
83 mainProgram = "wealthfolio";
84 maintainers = with lib.maintainers; [ kilianar ];
85 platforms = lib.platforms.linux;
86 };
87})