{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { nixpkgs , flake-utils , ... }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; # Place all toolchain components in a single directory for IntelliJ rust-toolchain = pkgs.symlinkJoin { name = "rust-toolchain"; paths = with pkgs; [ rustc cargo rustPlatform.rustcSrc ] ++ lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.SystemConfiguration ]; }; in { devShells.default = pkgs.mkShell { name = "reddit-magnet"; buildInputs = with pkgs; [ cargo cargo-edit cargo-machete cargo-release cargo-sort diesel-cli openssl pkg-config rustc rust-toolchain sqlite ] ++ lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.SystemConfiguration ]; RUST_BACKTRACE = 1; }; }); }