From 52f962e3b56db5c8d91bcaba6b4b06e5f37d6f08 Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Mon, 6 Jan 2025 17:50:55 +0200 Subject: [PATCH] Add java support Signed-off-by: Nikolaos Karaolidis --- flake.nix | 1 + .../configs/user/gui/vscode/default.nix | 1 + .../user/gui/vscode/langs/java/default.nix | 13 +++++++++++ hosts/common/shells/go/default.nix | 15 +++++------- hosts/common/shells/java17/default.nix | 10 ++++++++ hosts/common/shells/nodejs/default.nix | 7 ------ hosts/common/shells/python/default.nix | 23 +++++++++++++++---- hosts/elara/users/nikara/default.nix | 5 ++++ 8 files changed, 55 insertions(+), 20 deletions(-) create mode 100644 hosts/common/configs/user/gui/vscode/langs/java/default.nix create mode 100644 hosts/common/shells/java17/default.nix diff --git a/flake.nix b/flake.nix index ea25368..6e986b0 100644 --- a/flake.nix +++ b/flake.nix @@ -103,6 +103,7 @@ devShells = { bun = import ./hosts/common/shells/bun { inherit pkgs; }; go = import ./hosts/common/shells/go { inherit pkgs; }; + java17 = import ./hosts/common/shells/java17 { inherit pkgs; }; nix = import ./hosts/common/shells/nix { inherit pkgs; }; nodejs = import ./hosts/common/shells/nodejs { inherit pkgs; }; python = import ./hosts/common/shells/python { inherit pkgs; }; diff --git a/hosts/common/configs/user/gui/vscode/default.nix b/hosts/common/configs/user/gui/vscode/default.nix index d22e424..8b601ef 100644 --- a/hosts/common/configs/user/gui/vscode/default.nix +++ b/hosts/common/configs/user/gui/vscode/default.nix @@ -117,6 +117,7 @@ in imports = [ ./langs/c ./langs/go + ./langs/java ./langs/lua ./langs/nix ./langs/python diff --git a/hosts/common/configs/user/gui/vscode/langs/java/default.nix b/hosts/common/configs/user/gui/vscode/langs/java/default.nix new file mode 100644 index 0000000..c8b68d0 --- /dev/null +++ b/hosts/common/configs/user/gui/vscode/langs/java/default.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +{ + programs.vscode.extensions = + with pkgs; + with vscode-extensions; + [ + redhat.java + vscjava.vscode-java-debug + vscjava.vscode-java-test + vscjava.vscode-maven + vscjava.vscode-gradle + ]; +} diff --git a/hosts/common/shells/go/default.nix b/hosts/common/shells/go/default.nix index ddac660..346ae02 100644 --- a/hosts/common/shells/go/default.nix +++ b/hosts/common/shells/go/default.nix @@ -7,16 +7,13 @@ pkgs.mkShell { ]; shellHook = '' - export P10K_EXTRA_RIGHT_PROMPT_ELEMENTS=( - goenv - "''${P10K_EXTRA_RIGHT_PROMPT_ELEMENTS[@]}" - ) - - if git rev-parse --is-inside-work-tree &> /dev/null && ! grep -q "^\.go$" .gitignore .git/info/exclude; then - echo ".go" >> .git/info/exclude - export GOPATH="$(git rev-parse --show-toplevel)/.go" + if git rev-parse --is-inside-work-tree &> /dev/null; then + TOP="$(git rev-parse --show-toplevel)" + if ! grep -q "^\.go$" "$TOP/.gitignore" "$TOP/.git/info/exclude"; then echo ".go" >> "$TOP/.git/info/exclude"; fi else - export GOPATH="$(pwd)/.go" + TOP="$(pwd)" fi + + export GOPATH="$TOP/.go" ''; } diff --git a/hosts/common/shells/java17/default.nix b/hosts/common/shells/java17/default.nix new file mode 100644 index 0000000..f6902e3 --- /dev/null +++ b/hosts/common/shells/java17/default.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: +pkgs.mkShell { + packages = with pkgs; [ + jdk17 + ]; + + shellHook = '' + export JAVA_HOME=${pkgs.jdk17.home} + ''; +} diff --git a/hosts/common/shells/nodejs/default.nix b/hosts/common/shells/nodejs/default.nix index 7fe81a6..b76036c 100644 --- a/hosts/common/shells/nodejs/default.nix +++ b/hosts/common/shells/nodejs/default.nix @@ -3,11 +3,4 @@ pkgs.mkShell { packages = with pkgs; [ nodejs ]; - - shellHook = '' - export P10K_EXTRA_RIGHT_PROMPT_ELEMENTS=( - node_version - "''${P10K_EXTRA_RIGHT_PROMPT_ELEMENTS[@]}" - ) - ''; } diff --git a/hosts/common/shells/python/default.nix b/hosts/common/shells/python/default.nix index dce0b63..3b175aa 100644 --- a/hosts/common/shells/python/default.nix +++ b/hosts/common/shells/python/default.nix @@ -13,9 +13,24 @@ pkgs.mkShell { ]; shellHook = '' - export P10K_EXTRA_RIGHT_PROMPT_ELEMENTS=( - virtualenv - "''${P10K_EXTRA_RIGHT_PROMPT_ELEMENTS[@]}" - ) + if git rev-parse --is-inside-work-tree &> /dev/null; then + TOP="$(git rev-parse --show-toplevel)" + if ! grep -q "^\.venv$" "$TOP/.gitignore" "$TOP/.git/info/exclude"; then echo ".venv" >> "$TOP/.git/info/exclude"; fi + else + TOP="$(pwd)" + fi + + if [ -d "$TOP/.venv" ]; then + source "$TOP/.venv/bin/activate" + else + echo "No virtual environment found. Do you want to create one? (y/N)" + read -r answer + if [[ "$answer" =~ ^[Yy]$ ]]; then + python -m venv "$TOP/.venv" + source "$TOP/.venv/bin/activate" + pip install --upgrade pip + if [ -f "$TOP/requirements.txt" ]; then pip install -r "$TOP/requirements.txt"; fi + fi + fi ''; } diff --git a/hosts/elara/users/nikara/default.nix b/hosts/elara/users/nikara/default.nix index a2b4cef..1d2aba6 100644 --- a/hosts/elara/users/nikara/default.nix +++ b/hosts/elara/users/nikara/default.nix @@ -135,6 +135,11 @@ in sopsFile = ../../../../secrets/sas/secrets.yaml; path = "${home}/.kube/d90272"; }; + + "artifactory" = { + sopsFile = ../../../../secrets/sas/secrets.yaml; + path = "${home}/.gradle/gradle.properties"; + }; }; programs = {