{
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;
};
};
}