{ description = "Development and build environment for singularity-forge"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; flake-utils.url = "github:numtide/flake-utils"; }; nixConfig = { extra-substituters = [ "https://cache.centralcloud.com/default" ]; extra-trusted-public-keys = [ "default:ywfU21WX06iOn2Ec2lae1jYh4w8LO4IQkmp06vJzsk8=" ]; }; outputs = { self, nixpkgs, flake-utils, }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; in { devShells.default = pkgs.mkShell { packages = with pkgs; [ bash cargo clippy git just pkg-config protobuf rust-analyzer rustc rustfmt uv zlib ]; shellHook = '' export SF_SOURCE_DIR="${toString ./.}" if [ -x "$HOME/.local/bin/mise" ]; then MISE_NODE_BIN="$("$HOME/.local/bin/mise" which node 2>/dev/null || true)" if [ -n "$MISE_NODE_BIN" ]; then export PATH="$(dirname "$MISE_NODE_BIN"):$PATH" fi fi export PATH="$SF_SOURCE_DIR/bin:$PATH" export RUST_BACKTRACE=1 echo "singularity-forge development shell" echo " cargo: $(command -v cargo)" echo " node : $(command -v node)" echo " protoc: $(command -v protoc)" echo " rustc: $(command -v rustc)" echo "" echo "Build native addon:" echo " node rust-engine/scripts/build.js" ''; }; }); }