forked from fabian/nix
		
	
		
			
				
	
	
		
			76 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			2 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; [];
 | 
						|
    };
 | 
						|
  }
 |