Files
py-leptos/devenv.nix
John Lancaster 8a825ab9c1 devenv scripts
2025-09-13 13:31:07 -05:00

81 lines
1.6 KiB
Nix

{ pkgs, lib, config, inputs, ... }:
{
# https://devenv.sh/basics/
env.GREET = "devenv";
# https://devenv.sh/packages/
packages = with pkgs; [
nixfmt # needed for Nix IDE?
git
# rustc rustfmt cargo
trunk cargo-generate
# LLVM tools for WebAssembly compilation
llvm
lld
eza
];
# https://devenv.sh/languages/
languages.rust.enable = true;
languages.python = {
enable = true;
package = pkgs.python312;
uv = {
enable = true;
sync = {
enable = true;
allExtras = true;
};
};
};
# https://devenv.sh/processes/
# processes.cargo-watch.exec = "cargo-watch";
# https://devenv.sh/services/
# services.postgres.enable = true;
# https://devenv.sh/scripts/
scripts.hello.exec = ''
echo hello from $GREET
'';
scripts.versions.exec = ''
git --version
uv run --locked python --version
rustc --version
'';
scripts.dev.exec = ''
${pkgs.uv}/bin/uv run --locked maturin develop
'';
scripts.test-import.exec = ''
${pkgs.uv}/bin/uv run --locked python -c "import py_leptos"
'';
enterShell = ''
hello
versions
eza -laT -I "*.dist-info" .devenv/state/venv/lib/python3.12/site-packages
'';
# https://devenv.sh/tasks/
# tasks = {
# "myproj:setup".exec = "mytool build";
# "devenv:enterShell".after = [ "myproj:setup" ];
# };
# https://devenv.sh/tests/
enterTest = ''
echo "Running tests"
versions
'';
# https://devenv.sh/git-hooks/
# git-hooks.hooks.shellcheck.enable = true;
# See full reference at https://devenv.sh/reference/options/
}