{ description = "nrd.sh - bespoke static site compiler"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; fenix = { url = "github:nix-community/fenix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, fenix, }: let systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forAllSystems = fn: nixpkgs.lib.genAttrs systems (system: fn system); in { devShells = forAllSystems ( system: let pkgs = nixpkgs.legacyPackages.${system}; fenixPkgs = fenix.packages.${system}; toolchain = fenixPkgs.fromToolchainFile { file = ./rust-toolchain.toml; sha256 = "sha256-vra6TkHITpwRyA5oBKAHSX0Mi6CBDNQD+ryPSpxFsfg="; }; in { default = pkgs.mkShell.override { stdenv = pkgs.clangStdenv; } { RUST_SRC_PATH = "${toolchain}/lib/rustlib/src/rust/library"; packages = [ toolchain pkgs.treefmt pkgs.shfmt pkgs.taplo pkgs.pkg-config pkgs.nixfmt ] ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ pkgs.apple-sdk pkgs.libiconv ]; }; } ); }; }