From 12cd6972097b3d321875351292fb05d5c72f5444 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Thu, 5 Jun 2025 19:46:06 -0600 Subject: [PATCH] pkgs: add spliit --- pkgs/default.nix | 2 ++ pkgs/spliit/default.nix | 64 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 pkgs/spliit/default.nix diff --git a/pkgs/default.nix b/pkgs/default.nix index 2ee6bfd..454b81d 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -5,4 +5,6 @@ in { lib = callPackage ./lib {}; override = {}; + + spliit = callPackage ./spliit {}; } diff --git a/pkgs/spliit/default.nix b/pkgs/spliit/default.nix new file mode 100644 index 0000000..5ac56b1 --- /dev/null +++ b/pkgs/spliit/default.nix @@ -0,0 +1,64 @@ +{ + buildNpmPackage, + fetchFromGitHub, + nodePackages, + lib, + writeShellScriptBin, +}: +buildNpmPackage { + pname = "spliit2"; + version = "master-20250420"; + + src = fetchFromGitHub { + repo = "spliit"; + owner = "spliit-app"; + + rev = "a11efc79c13298c0d282e47496d132538752405f"; + hash = "sha256-v4gaPzLzBbbqw/LDYxe1fiyficcrqcGOop23YPiTrdc="; + }; + + npmDepsHash = "sha256-sd0/7ruNUFxUKTeTwx/v8Vc/G3llkXP6RSDE78h3qVU="; + npmRebuildFlags = ["--ignore-scripts"]; + + doCheck = false; + + postPatch = '' + cp -v .env.example .env + ''; + + # nixpkgs/pkgs/applications/office/documenso/default.nix (git)-[master] 05:36:05 + preBuild = '' + # somehow for linux, npm is not finding the prisma package with the + # packages installed with the lockfile. + # This generates a prisma version incompatibility warning and is a kludge + # until the upstream package-lock is modified. + ${lib.getExe nodePackages.prisma} generate + ''; + + postInstall = '' + install -Dvm755 -t $out/bin ${lib.getExe (writeShellScriptBin "spliit2" '' + set -euxo pipefail + + cd @out@/lib/node_modules/spliit2 + + export PATH="$PWD/node_modules/.bin:$PATH" + export NEXT_TELEMETRY_DISABLED=1 + + prisma migrate deploy + exec next start + '')} + + #kk? + #${lib.getExe nodePackages.prisma} migrate deploy + + substituteInPlace $out/bin/spliit2 \ + --replace @out@ $out + ''; + + meta = { + description = "Free and Open Source Alternative to Splitwise. Share expenses with your friends and family."; + homepage = "https://spliit.app"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; []; + }; +}