{
description = "Development environment for splotrs";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
outputs = { nixpkgs, self, ... }:
let
supportedSystems = [
"aarch64-darwin"
"aarch64-linux"
"x86_64-darwin"
"x86_64-linux"
];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
in
{
devShells = forAllSystems (system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
{
default = pkgs.mkShell ({
packages = with pkgs; [
cargo
clippy
just
python3
rustc
rustfmt
uv
];
UV_PROJECT_ENVIRONMENT = ".venv";
UV_PYTHON = "${pkgs.python3}/bin/python";
UV_PYTHON_DOWNLOADS = "never";
shellHook = ''
unset PYTHONHOME PYTHONPATH
uv sync --frozen
source "$UV_PROJECT_ENVIRONMENT/bin/activate"
'';
} // pkgs.lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux {
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [
pkgs.stdenv.cc.cc.lib
pkgs.zlib
];
});
});
};
}