at 18.09-beta 1.3 kB view raw
1# This module provides JAVA_HOME, with a different way to install java 2# system-wide. 3 4{ config, lib, pkgs, ... }: 5 6with lib; 7 8let 9 cfg = config.programs.java; 10in 11 12{ 13 14 options = { 15 16 programs.java = { 17 18 enable = mkEnableOption "java" // { 19 description = '' 20 Install and setup the Java development kit. 21 <note> 22 <para>This adds JAVA_HOME to the global environment, by sourcing the 23 jdk's setup-hook on shell init. It is equivalent to starting a shell 24 through 'nix-shell -p jdk', or roughly the following system-wide 25 configuration: 26 </para> 27 <programlisting> 28 environment.variables.JAVA_HOME = ''${pkgs.jdk.home}/lib/openjdk; 29 environment.systemPackages = [ pkgs.jdk ]; 30 </programlisting> 31 </note> 32 ''; 33 }; 34 35 package = mkOption { 36 default = pkgs.jdk; 37 defaultText = "pkgs.jdk"; 38 description = '' 39 Java package to install. Typical values are pkgs.jdk or pkgs.jre. 40 ''; 41 type = types.package; 42 }; 43 44 }; 45 46 }; 47 48 config = mkIf cfg.enable { 49 50 environment.systemPackages = [ cfg.package ]; 51 52 environment.shellInit = '' 53 test -e ${cfg.package}/nix-support/setup-hook && source ${cfg.package}/nix-support/setup-hook 54 ''; 55 56 }; 57 58}