{ description = "fumi - Smol Mail client (Rust)"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; fumi = { rns ? false }: pkgs.rustPlatform.buildRustPackage { pname = "fumi"; version = "0.1.0"; src = ./.; cargoLock.lockFile = ./Cargo.lock; buildFeatures = pkgs.lib.optionals rns [ "rns" ]; # The rns feature vendors microReticulum behind the shim and needs # MICRORETICULUM_SOURCE_DIR; it is added with the RNS carrier. doCheck = !rns; }; in { packages.default = fumi { }; packages.rns = fumi { rns = true; }; apps.default = flake-utils.lib.mkApp { drv = fumi { }; name = "fumi"; }; devShells.default = pkgs.mkShell { packages = with pkgs; [ cargo rustc rustfmt clippy sqlite ]; }; }); }