lumen 2.32.0

lumen is a command-line tool that uses AI to generate commit messages, summarise git diffs or past commits, and more.
{
  description = "A command-line tool that uses AI to streamline your git workflow - from generating commit messages to explaining complex changes.";

  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; };
      in
      {
        packages = {
          lumen =
            let
              manifest = (pkgs.lib.importTOML ./Cargo.toml).package;
            in
            pkgs.rustPlatform.buildRustPackage {
              pname = manifest.name;
              version = manifest.version;

              cargoLock.lockFile = ./Cargo.lock;

              src = pkgs.lib.cleanSource ./.;

              nativeBuildInputs = [
                pkgs.pkg-config
                pkgs.perl
              ];
              buildInputs = [ pkgs.openssl ];
              doCheck = false;
            };
          default = self.packages.${system}.lumen;
        };

        devShells.default = pkgs.mkShell {
          nativeBuildInputs = [
            pkgs.cargo
            pkgs.clippy
            pkgs.rust-analyzer
            pkgs.rustc
            pkgs.rustfmt
            pkgs.pkg-config
            pkgs.perl
          ];
          buildInputs = [
            pkgs.openssl
          ];
        };
      }
    )
    // {
      overlays.default = final: prev: {
        inherit (self.packages.${final.system}) lumen;
      };
    };
}