{ description = "Effigenix ERP – Dev Environment"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; flake-utils.url = "github:numtide/flake-utils"; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, flake-utils, rust-overlay, ... }: flake-utils.lib.eachDefaultSystem (system: let overlays = [ (import rust-overlay) ]; pkgs = import nixpkgs { inherit system overlays; }; rustToolchain = pkgs.rust-bin.stable.latest.default.override { extensions = [ "rust-src" "rust-analyzer" ]; targets = [ "aarch64-linux-android" "armv7-linux-androideabi" "i686-linux-android" "x86_64-linux-android" ]; }; in { devShells.default = pkgs.mkShell { name = "effigenix"; buildInputs = with pkgs; [ # ─── Frontend ─────────────────────────── nodejs_22 nodePackages.pnpm # ─── Rust / Tauri ─────────────────────── rustToolchain cargo-tauri # Tauri v2 system deps (Linux/GTK) pkg-config openssl gtk3 webkitgtk_4_1 libsoup_3 glib gdk-pixbuf cairo pango harfbuzz atk # ─── Tools ───────────────────────────── just jq curl postgresql rainfrog ]; # Tauri braucht diese zur Laufzeit LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath (with pkgs; [ gtk3 webkitgtk_4_1 libsoup_3 openssl ]); shellHook = '' echo "Node $(node --version)" echo "pnpm $(pnpm --version)" echo "rustc $(rustc --version)" echo "cargo $(cargo --version)" echo "" echo "just --list für alle Befehle" ''; }; }); }