Files
lila/devenv.nix

64 lines
1.2 KiB
Nix

{
pkgs,
lib,
config,
inputs,
...
}:
let
pkgs-master = import inputs.nixpkgs-master { system = pkgs.stdenv.system; };
pkgs-unstable = import inputs.nixpkgs-unstable { system = pkgs.stdenv.system; };
in
{
# https://devenv.sh/languages/
languages = {
java = {
enable = true;
jdk.package = pkgs.openjdk21;
};
scala = {
enable = true;
sbt.enable = true;
};
javascript = {
enable = false; # it adds node_modules/.bin to the $PATH!
};
};
# https://devenv.sh/services/
services = {
mongodb.enable = true;
redis.enable = true;
};
packages = [
pkgs-unstable.nodejs-slim
pkgs-master.pnpm
pkgs.svgo
pkgs-master.oxlint
pkgs-master.oxfmt
pkgs-master.tsgolint
pkgs.lint-staged
pkgs-unstable.stylelint
pkgs.dart-sass
];
tasks = {
"lint:code" = {
exec = "oxlint --type-aware";
};
"lint:style" = {
exec = ''stylelint "ui/**/*.scss" --fix'';
};
"format:ui" = {
exec = "oxfmt";
};
"clean:bin" = {
# pnpm installs dynamically linked binaries there,
# and forcefully adds the directory to the $PATH.
exec = "rm -rf node_modules/.bin";
before = [ "devenv:enterShell" ];
};
};
}