{ description = "Rust dev env for Meltano toy project"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; python-with-deps = pkgs.python3.withPackages (ps: with ps; [ pip setuptools wheel psycopg2 ]); venvDir = ".venv"; in { devShells.default = pkgs.mkShell { packages = [ pkgs.rustup pkgs.cargo pkgs.docker pkgs.postgresql python-with-deps ]; shellHook = '' echo "✅ Rust + PostgreSQL dev env ready" if [ ! -d ${venvDir} ]; then echo "🐍 Creating Python virtualenv..." python3 -m venv ${venvDir} fi source ${venvDir}/bin/activate pip install --upgrade pip pip install -r requirements.txt echo "Python env ready" ''; }; }); }