|
| 1 | +{ |
| 2 | + fetchurl, |
| 3 | + appimageTools, |
| 4 | + lib, |
| 5 | + makeWrapper, |
| 6 | + stdenv, |
| 7 | +}: |
| 8 | + |
| 9 | +let |
| 10 | + |
| 11 | + inherit (stdenv.hostPlatform) system; |
| 12 | + |
| 13 | + platform = |
| 14 | + { |
| 15 | + x86_64-linux = "amd64"; |
| 16 | + aarch64-linux = "arm64"; |
| 17 | + } |
| 18 | + .${system}; |
| 19 | + |
| 20 | + # Get hash in sri format |
| 21 | + # nix-prefetch-url <url> | xargs nix hash to-sri --type sha256 --extra-experimental-features nix-command |
| 22 | + hash = |
| 23 | + { |
| 24 | + x86_64-linux = "sha256-Gj/VDsV+ks8bhsFwU47+oBmsYOa0lQMHZeqQ3/IHm9E="; |
| 25 | + aarch64-linux = "sha256-9pIT7iiarHBtHRdX5lqdfmJLJLMkugqZdprBZm5g1A8="; |
| 26 | + } |
| 27 | + .${system}; |
| 28 | + |
| 29 | + pname = "buckets"; |
| 30 | + version = "0.75.0"; |
| 31 | + src = fetchurl { |
| 32 | + url = "https://github.com/buckets/application/releases/download/v${version}/Buckets-linux-latest-${platform}-${version}.AppImage"; |
| 33 | + inherit hash; |
| 34 | + }; |
| 35 | + appimageContents = appimageTools.extractType2 { inherit pname version src; }; |
| 36 | +in |
| 37 | +appimageTools.wrapType2 { |
| 38 | + inherit pname version src; |
| 39 | + extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.libsodium ]; |
| 40 | + extraInstallCommands = '' |
| 41 | + source "${makeWrapper}/nix-support/setup-hook" |
| 42 | + wrapProgram $out/bin/buckets |
| 43 | + install -m 444 -D ${appimageContents}/buckets.desktop -t $out/share/applications |
| 44 | + substituteInPlace $out/share/applications/buckets.desktop \ |
| 45 | + --replace-fail 'Exec=AppRun' 'Exec=buckets' |
| 46 | + for size in 16 32 48 64 128 256 512; do |
| 47 | + install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/''${size}x''${size}/apps/buckets.png \ |
| 48 | + $out/share/icons/hicolor/''${size}x''${size}/apps/buckets.png |
| 49 | + done |
| 50 | + ''; |
| 51 | + |
| 52 | + meta = { |
| 53 | + description = "Private family budgeting app"; |
| 54 | + homepage = "https://www.budgetwithbuckets.com/"; |
| 55 | + license = lib.licenses.unfree; |
| 56 | + maintainers = with lib.maintainers; [ kmogged ]; |
| 57 | + platforms = [ |
| 58 | + "x86_64-linux" |
| 59 | + "aarch64-linux" |
| 60 | + ]; |
| 61 | + mainProgram = "buckets"; |
| 62 | + }; |
| 63 | +} |
0 commit comments