summaryrefslogtreecommitdiff
path: root/derivations/yek
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-02-22 08:13:08 +0700
committerpolwex <polwex@sortug.com>2025-02-22 08:13:08 +0700
commit3af8fa41d6299c6b88038911cc091a152f189e12 (patch)
tree069a820cecdc07b71090dbc4a901761286c9aac0 /derivations/yek
parent73b7d2b9fcd3e1692823655f2b4bf23201e0ae1b (diff)
yek
Diffstat (limited to 'derivations/yek')
-rw-r--r--derivations/yek/flake.lock27
-rw-r--r--derivations/yek/flake.nix19
-rw-r--r--derivations/yek/package.nix57
3 files changed, 103 insertions, 0 deletions
diff --git a/derivations/yek/flake.lock b/derivations/yek/flake.lock
new file mode 100644
index 0000000..bad2016
--- /dev/null
+++ b/derivations/yek/flake.lock
@@ -0,0 +1,27 @@
+{
+ "nodes": {
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1739866667,
+ "narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/derivations/yek/flake.nix b/derivations/yek/flake.nix
new file mode 100644
index 0000000..904d54f
--- /dev/null
+++ b/derivations/yek/flake.nix
@@ -0,0 +1,19 @@
+{
+ description = "yek flake";
+
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+ };
+
+ outputs = {
+ self,
+ nixpkgs,
+ }: let
+ system = "x86_64-linux";
+ pkgs = nixpkgs.legacyPackages.${system};
+ in {
+ packages.${system}.default = pkgs.callPackage ./package.nix {
+ inherit (pkgs) lib;
+ };
+ };
+}
diff --git a/derivations/yek/package.nix b/derivations/yek/package.nix
new file mode 100644
index 0000000..c8ddaf6
--- /dev/null
+++ b/derivations/yek/package.nix
@@ -0,0 +1,57 @@
+{
+ lib,
+ fetchFromGitHub,
+ rustPlatform,
+ pkg-config,
+ openssl,
+ nixpkgs,
+ nix-update-script,
+ versionCheckHook,
+}: let
+ version = "0.16.0";
+in
+ rustPlatform.buildRustPackage {
+ pname = "yek";
+ version = version;
+
+ src = fetchFromGitHub {
+ owner = "bodo-run";
+ repo = "yek";
+ tag = "v${version}";
+ hash = "sha256-dboKZuY6mlFZu/xCoLXFJ4ARXyYs5/yOYeGkAnUKRX4=";
+ };
+ useFetchCargoVendor = true;
+ cargoHash = "sha256-/J+11PRCWn0rzq3nILJYd3V8cxmwDegArUDp8i5rsTY=";
+
+ nativeBuildInputs = [pkg-config];
+ buildInputs = [openssl];
+
+ env.OPENSSL_NO_VENDOR = 1;
+
+ checkFlags = [
+ # Tests with git fail
+ "--skip=e2e_tests::test_git_boost_config"
+ "--skip=e2e_tests::test_git_integration"
+ "--skip=lib_tests::test_serialize_repo_with_git"
+ "--skip=priority_tests::test_get_recent_commit_times_empty_repo"
+ "--skip=priority_tests::test_get_recent_commit_times_with_git"
+ "--skip=priority_tests::test_get_recent_commit_times_git_failure"
+ ];
+
+ nativeInstallCheckInputs = [versionCheckHook];
+ versionCheckProgramArg = "--version";
+ doInstallCheck = true;
+ passthru.updateScript = nix-update-script {};
+
+ meta = {
+ description = "Serialize text files for LLM consumption";
+ longDescription = ''
+ Tool to read text-based files, chunk them, and serialize them for LLM consumption.
+ '';
+ homepage = "https://github.com/bodo-run/yek";
+ changelog = "https://github.com/bodo-run/yek/releases/tag/v${version}";
+ license = lib.licenses.mit;
+ mainProgram = "yek";
+ maintainers = with lib.maintainers; [louis-thevenet];
+ };
+ }