78 lines
1.9 KiB
Nix
78 lines
1.9 KiB
Nix
{
|
|
buildNpmPackage,
|
|
fetchFromGitHub,
|
|
nodePackages,
|
|
lib,
|
|
writeShellScriptBin,
|
|
pkgs
|
|
}:
|
|
let
|
|
schemaEngine = "${pkgs.prisma-engines}/bin/schema-engine";
|
|
queryEngineBin = "${pkgs.prisma-engines}/bin/query-engine";
|
|
queryEngineLib = "${pkgs.prisma-engines}/lib/libquery_engine.node";
|
|
buildFlags = [ "--ignore-scripts" ];
|
|
in
|
|
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=";
|
|
|
|
nativeBuildInputs = [ pkgs.openssl ];
|
|
|
|
npmRebuildFlags = buildFlags;
|
|
|
|
PRISMA_SCHEMA_ENGINE_BINARY = schemaEngine;
|
|
PRISMA_QUERY_ENGINE_BINARY = queryEngineBin;
|
|
PRISMA_QUERY_ENGINE_LIBRARY = queryEngineLib;
|
|
|
|
preBuild = ''
|
|
cp -v scripts/build.env .env
|
|
|
|
npx prisma generate
|
|
'';
|
|
|
|
npmBuildFlags = buildFlags;
|
|
|
|
postInstall = ''
|
|
cp -r .next public package.json next.config.mjs $out/lib/node_modules/spliit2
|
|
|
|
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
|
|
|
|
export PRISMA_SCHEMA_ENGINE_BINARY="${schemaEngine}"
|
|
export PRISMA_QUERY_ENGINE_BINARY="${queryEngineBin}"
|
|
export PRISMA_QUERY_ENGINE_LIBRARY="${queryEngineLib}"
|
|
|
|
prisma migrate deploy
|
|
next start
|
|
'')}
|
|
|
|
substituteInPlace $out/bin/spliit2 \
|
|
--replace @out@ $out
|
|
|
|
wrapProgram $out/bin/spliit2 \
|
|
--prefix PATH : ${lib.makeBinPath [ pkgs.openssl ]}
|
|
'';
|
|
|
|
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; [];
|
|
};
|
|
}
|