{ description = "TFC Website"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; cl-nix-lite.url = "github:hraban/cl-nix-lite"; rust-overlay.url = "github:oxalica/rust-overlay"; }; outputs = inputs: with inputs; flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; src = ./.; sbcl' = pkgs.sbcl.withPackages (ps: with ps; [ hunchentoot dexador jzon serapeum deploy spinneret lass cl-smtp log4cl cl_plus_ssl fiveam slite clack woo ningle pkgs.openssl pkgs.openssl.out pkgs.openssl.dev ]); nbi = with pkgs; [ gcc stdenv gnumake gdb pkg-config makeWrapper openssl openssl.out openssl.dev ]; bi = with pkgs; [ hugo go nodejs sbcl' clippy rustc cargo rustfmt rust-analyzer just openssl openssl.out openssl.dev ]; nativeLibs = with pkgs; [ openssl openssl.out openssl.dev ]; in { devShell = pkgs.mkShell { name = "tfc-api"; version = "0.0.1"; src = src; nativeBuildInputs = nbi; buildInputs = bi; nativeLibs = nativeLibs; shellHook = '' export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${pkgs.lib.makeLibraryPath nativeLibs}" ''; }; packages.default = pkgs.rustPlatform.buildRustPackage { pname = "api"; version = "0.0.1"; src = src; cargoBuildFlags = ""; cargoLock = { lockFile = ./Cargo.lock; }; nativeBuildInputs = nbi; buildInputs = bi; }; } ); }