 f9f354faad
			
		
	
	
		f9f354faad
		
			
		
	
	
	
	
		
			
			Primarily to fix rendering of these default values in the manual but it's also nice to avoid having to eval these things just to build the manual.
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| # This module provides JAVA_HOME, with a different way to install java
 | |
| # system-wide.
 | |
| 
 | |
| { config, lib, pkgs, ... }:
 | |
| 
 | |
| with lib;
 | |
| 
 | |
| let
 | |
|   cfg = config.programs.java;
 | |
| in
 | |
| 
 | |
| {
 | |
| 
 | |
|   options = {
 | |
| 
 | |
|     programs.java = {
 | |
| 
 | |
|       enable = mkEnableOption "java" // {
 | |
|         description = ''
 | |
|           Install and setup the Java development kit.
 | |
|           <note>
 | |
|           <para>This adds JAVA_HOME to the global environment, by sourcing the
 | |
|             jdk's setup-hook on shell init. It is equivalent to starting a shell
 | |
|             through 'nix-shell -p jdk', or roughly the following system-wide
 | |
|             configuration:
 | |
|           </para>
 | |
|           <programlisting>
 | |
|             environment.variables.JAVA_HOME = ''${pkgs.jdk.home}/lib/openjdk;
 | |
|             environment.systemPackages = [ pkgs.jdk ];
 | |
|           </programlisting>
 | |
|           </note>
 | |
|         '';
 | |
|       };
 | |
| 
 | |
|       package = mkOption {
 | |
|         default = pkgs.jdk;
 | |
|         defaultText = "pkgs.jdk";
 | |
|         description = ''
 | |
|           Java package to install. Typical values are pkgs.jdk or pkgs.jre.
 | |
|         '';
 | |
|         type = types.package;
 | |
|       };
 | |
| 
 | |
|     };
 | |
| 
 | |
|   };
 | |
| 
 | |
|   config = mkIf cfg.enable {
 | |
| 
 | |
|     environment.systemPackages = [ cfg.package ];
 | |
| 
 | |
|     environment.shellInit = ''
 | |
|       test -e ${cfg.package}/nix-support/setup-hook && source ${cfg.package}/nix-support/setup-hook
 | |
|     '';
 | |
| 
 | |
|   };
 | |
| 
 | |
| }
 |