java program: Init.

Mostly just provides a shell hook for the jdk's setup-hook.
Tested with openjdk and jre.
wip/yesman
Svein Ove Aas 8 years ago committed by Jörg Thalheim
parent f5dd3a703d
commit 54fdd0cf9c
No known key found for this signature in database
GPG Key ID: CA4106B8D7CC79FA
  1. 1
      nixos/modules/module-list.nix
  2. 57
      nixos/modules/programs/java.nix

@ -70,6 +70,7 @@
./programs/fish.nix
./programs/freetds.nix
./programs/info.nix
./programs/java.nix
./programs/kbdlight.nix
./programs/light.nix
./programs/man.nix

@ -0,0 +1,57 @@
# 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;
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
'';
};
}
Loading…
Cancel
Save