nixos/modules/dev.nix
2026-06-17 08:13:03 -03:00

87 lines
1.9 KiB
Nix

{ den, inputs, config, ... }:
let
username = config.local.identity.username;
in {
den.aspects.dev.nixos = { pkgs, ... }:
let
pkgs-unstable = import inputs.nixpkgs-unstable {
system = pkgs.system;
config.allowUnfree = true;
};
in {
environment.systemPackages = with pkgs-unstable; [
# CLI utilities
gcc
fzf
just
tree-sitter
ripgrep
chafa
forgejo-cli
awscli2
tracy
# Infrastructure
docker-compose
# IDE
jetbrains.idea
# Neovim
vimPlugins.blink-cmp
# LSPs
bash-language-server
lua-language-server
nixd
vscode-langservers-extracted
yaml-language-server
dockerfile-language-server
marksman
clang-tools
jdt-language-server
typescript-language-server
pyright
taplo
sqls
astro-language-server
angular-language-server
vue-language-server
tailwindcss-language-server
qt6Packages.qtdeclarative
wgsl-analyzer
# Java
openjdk8
openjdk11
openjdk17
openjdk21
maven
];
environment.variables = {
JAVA_HOME = "${pkgs-unstable.openjdk8}";
};
systemd.tmpfiles.rules = [
"d /var/lib/payara41 0755 ${username} users -"
];
system.activationScripts.payaraJava = ''
asenv=/var/lib/payara41/glassfish/config/asenv.conf
if [ -f "$asenv" ]; then
${pkgs.gnused}/bin/sed -i '/^AS_JAVA=/d' "$asenv"
echo 'AS_JAVA="${pkgs-unstable.openjdk8}"' >> "$asenv"
fi
domain_xml=/var/lib/payara41/glassfish/domains/domain1/config/domain.xml
if [ -f "$domain_xml" ]; then
${pkgs.gnused}/bin/sed -i 's|java-home="[^"]*"|java-home="${pkgs-unstable.openjdk8}/lib/openjdk"|' "$domain_xml"
fi
'';
virtualisation.docker.enable = true;
users.users.${username}.extraGroups = [ "docker" ];
};
}