ltrait 0.10.0

Yet Another Fuzzy Finder (Builder) for OS Wide, inspired from vim-fall and ddu.vim (and xmonad)
Documentation
{
  description = "A very basic flake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
    rust-overlay.url = "github:oxalica/rust-overlay";
    rust-overlay.inputs.nixpkgs.follows = "nixpkgs";

    clippy-reviewdog-filter-src = {
      url = "github:qnighy/clippy-reviewdog-filter";
      flake = false;
    };
  };

  outputs =
    inputs@{ self, nixpkgs, ... }:
    let
      system = "x86_64-linux";

      pkgs = import nixpkgs {
        inherit system;
        overlays = [
          inputs.rust-overlay.overlays.default
          (self: super: {
            # TODO: waiting for https://github.com/NixOS/nixpkgs/pull/391472
            # HACK:
            cargo-codspeed = super.rustPlatform.buildRustPackage rec {
              pname = "cargo-codspeed";
              version = "2.9.1";

              src = super.fetchFromGitHub {
                owner = "CodSpeedHQ";
                repo = "codspeed-rust";
                rev = "v${version}";
                hash = "sha256-q5xsZ8KHuC/Qm+o4xcWbW9Y9VrxHZ+/AxUO8TYEbE74=";
              };

              useFetchCargoVendor = true;
              cargoHash = "sha256-Ance7Hfl0EOmMfZf3ZqvawrK7scot7WpefLtemHKb+U=";

              nativeBuildInputs = with super; [
                curl
                pkg-config
              ];

              buildInputs =
                with super;
                [
                  curl
                  libgit2
                  openssl
                  zlib
                ]
                ++ lib.optionals stdenv.hostPlatform.isDarwin [
                  darwin.apple_sdk.frameworks.Security
                ];

              cargoBuildFlags = [ "-p=cargo-codspeed" ];
              cargoTestFlags = cargoBuildFlags;
              checkFlags = [
                # requires an extra dependency, blit
                "--skip=test_package_in_deps_build"
              ];

              env = {
                LIBGIT2_NO_VENDOR = 1;
              };
            };
          })
        ];
      };

      rust-bin = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;

      clippy-reviewdog-filter = pkgs.rustPlatform.buildRustPackage {
        pname = "clippy-reviewdog-filter";
        version = "${inputs.clippy-reviewdog-filter-src.shortRev}";

        src = inputs.clippy-reviewdog-filter-src;

        cargoHash = "sha256-pGkpgwCNXxKzoWuRIUSgXCJ2+PzrvD8voxtkDvWIazc=";
      };
    in
    {
      devShells.${system}.default = pkgs.mkShell {
        name = "ltrait";

        buildInputs = with pkgs; [
          rust-bin

          cargo-nextest

          # bench
          gnuplot
        ];
      };

      packages.${system} = {
        ci = pkgs.buildEnv {
          name = "ci";
          paths = with pkgs; [
            rust-bin

            cargo-nextest
            typos

            # bench
            gnuplot
            cargo-codspeed
          ];
        };
        review = pkgs.buildEnv {
          name = "review";
          paths = with pkgs; [
            rust-bin

            cargo-nextest
            typos

            reviewdog

            clippy-reviewdog-filter
          ];
        };
      };
    };
}