forked from fabian/nix
		
	add doctrine
This commit is contained in:
		
							parent
							
								
									1c7810a49e
								
							
						
					
					
						commit
						26619394f4
					
				
					 10 changed files with 113 additions and 63 deletions
				
			
		
							
								
								
									
										12
									
								
								doctrine/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								doctrine/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | { | ||||||
|  |   pkgs, | ||||||
|  |   namespace, | ||||||
|  | }: let | ||||||
|  |   doctrine = { | ||||||
|  |     lib = import ./lib {inherit lib pkgs doctrine;}; | ||||||
|  |     prefix = "trivium"; | ||||||
|  |     inherit namespace; | ||||||
|  |   }; | ||||||
|  |   inherit (pkgs) lib; | ||||||
|  | in | ||||||
|  |   doctrine | ||||||
							
								
								
									
										10
									
								
								doctrine/lib/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								doctrine/lib/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | ||||||
|  | { | ||||||
|  |   lib, | ||||||
|  |   doctrine, | ||||||
|  |   pkgs, | ||||||
|  | }: let | ||||||
|  |   close = f: args: f (args // {inherit lib pkgs doctrine;}); | ||||||
|  | in { | ||||||
|  |   importAll = pkgs.callPackage ./importAll.nix {}; | ||||||
|  |   mkModule = close (import ./mk-module.nix); | ||||||
|  | } | ||||||
							
								
								
									
										38
									
								
								doctrine/lib/mk-module.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								doctrine/lib/mk-module.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | ||||||
|  | { | ||||||
|  |   name, | ||||||
|  |   hm ? null, | ||||||
|  |   sys ? null, | ||||||
|  |   options ? null, | ||||||
|  |   lib, | ||||||
|  |   config, | ||||||
|  |   pkgs, | ||||||
|  |   doctrine, | ||||||
|  | }: let | ||||||
|  |   optionsSet = import options { | ||||||
|  |     inherit config lib pkgs cfg name doctrine; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   configSet = import configFiles.${doctrine.namespace} { | ||||||
|  |     inherit config lib pkgs doctrine cfg; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   configFiles = lib.filterAttrs (k: v: v != null) { | ||||||
|  |     inherit sys hm; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   cfg = config.${doctrine.prefix}.${name}; | ||||||
|  | in { | ||||||
|  |   config = | ||||||
|  |     lib.optionalAttrs (configFiles ? ${doctrine.namespace}) | ||||||
|  |     (lib.mkIf cfg.enable configSet); | ||||||
|  | 
 | ||||||
|  |   options = lib.optionalAttrs (options | ||||||
|  |     != null | ||||||
|  |     && optionsSet ? ${doctrine.namespace}) { | ||||||
|  |     ${doctrine.prefix}.${name} = | ||||||
|  |       optionsSet.${doctrine.namespace} | ||||||
|  |       // { | ||||||
|  |         enable = lib.mkEnableOption name; | ||||||
|  |       }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
|  | @ -45,8 +45,8 @@ | ||||||
|         trivium = overlay; |         trivium = overlay; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|       homeManagerModules.default = ./hm; |       homeManagerModules.default = ./modules; | ||||||
|       nixosModules.default = ./nixos; |       nixosModules.default = ./modules; | ||||||
| 
 | 
 | ||||||
|       lib = { |       lib = { | ||||||
|         mkSystemFlake = { |         mkSystemFlake = { | ||||||
|  |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| {} |  | ||||||
							
								
								
									
										3
									
								
								modules/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								modules/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | ||||||
|  | { | ||||||
|  |   imports = []; | ||||||
|  | } | ||||||
|  | @ -1,8 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: { |  | ||||||
|   imports = []; |  | ||||||
| } |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| {callPackage}: { |  | ||||||
|   importAll = callPackage ./importAll.nix {}; |  | ||||||
| } |  | ||||||
|  | @ -4,74 +4,73 @@ | ||||||
|   nodePackages, |   nodePackages, | ||||||
|   lib, |   lib, | ||||||
|   writeShellScriptBin, |   writeShellScriptBin, | ||||||
|   pkgs |   pkgs, | ||||||
| }: | }: let | ||||||
| let  |  | ||||||
|   schemaEngine = "${pkgs.prisma-engines}/bin/schema-engine"; |   schemaEngine = "${pkgs.prisma-engines}/bin/schema-engine"; | ||||||
|   queryEngineBin = "${pkgs.prisma-engines}/bin/query-engine"; |   queryEngineBin = "${pkgs.prisma-engines}/bin/query-engine"; | ||||||
|   queryEngineLib = "${pkgs.prisma-engines}/lib/libquery_engine.node"; |   queryEngineLib = "${pkgs.prisma-engines}/lib/libquery_engine.node"; | ||||||
|   buildFlags = [ "--ignore-scripts" ]; |   buildFlags = ["--ignore-scripts"]; | ||||||
| in | in | ||||||
| buildNpmPackage { |   buildNpmPackage { | ||||||
|   pname = "spliit2"; |     pname = "spliit2"; | ||||||
|   version = "master-20250420"; |     version = "master-20250420"; | ||||||
| 
 | 
 | ||||||
|   src = fetchFromGitHub { |     src = fetchFromGitHub { | ||||||
|     repo = "spliit"; |       repo = "spliit"; | ||||||
|     owner = "spliit-app"; |       owner = "spliit-app"; | ||||||
| 
 | 
 | ||||||
|     rev = "a11efc79c13298c0d282e47496d132538752405f"; |       rev = "a11efc79c13298c0d282e47496d132538752405f"; | ||||||
|     hash = "sha256-v4gaPzLzBbbqw/LDYxe1fiyficcrqcGOop23YPiTrdc="; |       hash = "sha256-v4gaPzLzBbbqw/LDYxe1fiyficcrqcGOop23YPiTrdc="; | ||||||
|   }; |     }; | ||||||
| 
 | 
 | ||||||
|   npmDepsHash = "sha256-sd0/7ruNUFxUKTeTwx/v8Vc/G3llkXP6RSDE78h3qVU="; |     npmDepsHash = "sha256-sd0/7ruNUFxUKTeTwx/v8Vc/G3llkXP6RSDE78h3qVU="; | ||||||
| 
 | 
 | ||||||
|   nativeBuildInputs = [ pkgs.openssl ]; |     nativeBuildInputs = [pkgs.openssl]; | ||||||
| 
 | 
 | ||||||
|   npmRebuildFlags = buildFlags; |     npmRebuildFlags = buildFlags; | ||||||
| 
 | 
 | ||||||
|   PRISMA_SCHEMA_ENGINE_BINARY = schemaEngine; |     PRISMA_SCHEMA_ENGINE_BINARY = schemaEngine; | ||||||
|   PRISMA_QUERY_ENGINE_BINARY  = queryEngineBin; |     PRISMA_QUERY_ENGINE_BINARY = queryEngineBin; | ||||||
|   PRISMA_QUERY_ENGINE_LIBRARY = queryEngineLib; |     PRISMA_QUERY_ENGINE_LIBRARY = queryEngineLib; | ||||||
| 
 | 
 | ||||||
|   preBuild = '' |     preBuild = '' | ||||||
|     cp -v scripts/build.env .env |       cp -v scripts/build.env .env | ||||||
| 
 | 
 | ||||||
|     npx prisma generate |       npx prisma generate | ||||||
|   ''; |     ''; | ||||||
| 
 | 
 | ||||||
|   npmBuildFlags = buildFlags; |     npmBuildFlags = buildFlags; | ||||||
| 
 | 
 | ||||||
|   postInstall = '' |     postInstall = '' | ||||||
|     cp -r .next public package.json next.config.mjs $out/lib/node_modules/spliit2 |       cp -r .next public package.json next.config.mjs $out/lib/node_modules/spliit2 | ||||||
| 
 | 
 | ||||||
|     install -Dvm755 -t $out/bin ${lib.getExe (writeShellScriptBin "spliit2" '' |       install -Dvm755 -t $out/bin ${lib.getExe (writeShellScriptBin "spliit2" '' | ||||||
|       set -euxo pipefail |         set -euxo pipefail | ||||||
| 
 | 
 | ||||||
|       cd @out@/lib/node_modules/spliit2 |         cd @out@/lib/node_modules/spliit2 | ||||||
| 
 | 
 | ||||||
|       export PATH="$PWD/node_modules/.bin:$PATH" |         export PATH="$PWD/node_modules/.bin:$PATH" | ||||||
|       export NEXT_TELEMETRY_DISABLED=1 |         export NEXT_TELEMETRY_DISABLED=1 | ||||||
| 
 | 
 | ||||||
|       export PRISMA_SCHEMA_ENGINE_BINARY="${schemaEngine}" |         export PRISMA_SCHEMA_ENGINE_BINARY="${schemaEngine}" | ||||||
|       export PRISMA_QUERY_ENGINE_BINARY="${queryEngineBin}" |         export PRISMA_QUERY_ENGINE_BINARY="${queryEngineBin}" | ||||||
|       export PRISMA_QUERY_ENGINE_LIBRARY="${queryEngineLib}" |         export PRISMA_QUERY_ENGINE_LIBRARY="${queryEngineLib}" | ||||||
| 
 | 
 | ||||||
|       prisma migrate deploy |         prisma migrate deploy | ||||||
|       next start |         next start | ||||||
|     '')} |       '')} | ||||||
| 
 | 
 | ||||||
|     substituteInPlace $out/bin/spliit2 \ |       substituteInPlace $out/bin/spliit2 \ | ||||||
|       --replace @out@ $out |         --replace @out@ $out | ||||||
| 
 | 
 | ||||||
|     wrapProgram $out/bin/spliit2 \ |       wrapProgram $out/bin/spliit2 \ | ||||||
|       --prefix PATH : ${lib.makeBinPath [ pkgs.openssl ]} |         --prefix PATH : ${lib.makeBinPath [pkgs.openssl]} | ||||||
|   ''; |     ''; | ||||||
| 
 | 
 | ||||||
|   meta = { |     meta = { | ||||||
|     description = "Free and Open Source Alternative to Splitwise. Share expenses with your friends and family."; |       description = "Free and Open Source Alternative to Splitwise. Share expenses with your friends and family."; | ||||||
|     homepage = "https://spliit.app"; |       homepage = "https://spliit.app"; | ||||||
|     license = lib.licenses.mit; |       license = lib.licenses.mit; | ||||||
|     maintainers = with lib.maintainers; []; |       maintainers = with lib.maintainers; []; | ||||||
|   }; |     }; | ||||||
| } |   } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Alejandro Soto
							Alejandro Soto