{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; nixpkgs-mozilla = { url = "github:mozilla/nixpkgs-mozilla"; flake = false; }; flake-utils.url = "github:numtide/flake-utils"; gitignore = { url = "github:hercules-ci/gitignore.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; naersk.url = "github:nix-community/naersk"; }; outputs = { self, nixpkgs, nixpkgs-mozilla, flake-utils, gitignore, naersk, ... }: flake-utils.lib.eachDefaultSystem (system: let pkgs = (import nixpkgs) { inherit system; overlays = [ (import nixpkgs-mozilla) ]; }; toolchain = (pkgs.rustChannelOf { rustToolchain = ./rust-toolchain.toml; sha256 = "sha256-pxvOVg97Rgb8MqUMl/c0bnMTmHGSkx/+snWXVgjzwMI="; }).rust; naersk' = pkgs.callPackage naersk { cargo = toolchain; rustc = toolchain; }; inherit (gitignore.lib) gitignoreSource; in rec { packages.default = naersk'.buildPackage { src = gitignoreSource ./.; }; devShell = pkgs.mkShell { shellHook = '' export LD_LIBRARY_PATH=${pkgs.openssl.out}/lib ''; nativeBuildInputs = with pkgs; [ toolchain cargo-make openssl ]; }; } ); }