diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d8640934..384daff1 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -84,6 +84,8 @@ /modules/programs/i3status-rust.nix @workflow +/modules/programs/java.nix @ShamrockLee + /modules/programs/keychain.nix @marsam /modules/programs/lazygit.nix @kalhauge diff --git a/modules/misc/news.nix b/modules/misc/news.nix index f5ac9c9e..2f5608e1 100644 --- a/modules/misc/news.nix +++ b/modules/misc/news.nix @@ -2047,6 +2047,13 @@ in configuration file. ''; } + + { + time = "2021-10-03T20:00:52+00:00"; + message = '' + A new module is available: 'programs.java'. + ''; + } ]; }; } diff --git a/modules/modules.nix b/modules/modules.nix index e7f4c1b6..5b60643a 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -83,6 +83,7 @@ let (loadModule ./programs/info.nix { }) (loadModule ./programs/irssi.nix { }) (loadModule ./programs/lieer.nix { }) + (loadModule ./programs/java.nix { }) (loadModule ./programs/jq.nix { }) (loadModule ./programs/kakoune.nix { }) (loadModule ./programs/keychain.nix { }) diff --git a/modules/programs/java.nix b/modules/programs/java.nix new file mode 100644 index 00000000..5b2a0129 --- /dev/null +++ b/modules/programs/java.nix @@ -0,0 +1,46 @@ +# This module provides JAVA_HOME, with a different way to install java locally. +# This module is modified from the NixOS module `programs.java` + +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.programs.java; + +in { + meta.maintainers = with maintainers; [ ShamrockLee ]; + + options = { + programs.java = { + enable = mkEnableOption "" // { + description = '' + Install the Java development kit and set the JAVA_HOME + variable. + ''; + }; + + package = mkOption { + type = types.package; + default = pkgs.jdk; + defaultText = "pkgs.jdk"; + description = '' + Java package to install. Typical values are + pkgs.jdk or pkgs.jre. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + home.packages = [ cfg.package ]; + + home.sessionVariables = { + JAVA_HOME = fileContents (pkgs.runCommandLocal "java-home" { } '' + source "${cfg.package}/nix-support/setup-hook" + echo "$JAVA_HOME" > $out + ''); + }; + }; +}