diff --git a/pkgs/by-name/ka/kak-tree-sitter-unwrapped/package.nix b/pkgs/by-name/ka/kak-tree-sitter-unwrapped/package.nix new file mode 100644 index 000000000000..49c04df4dd03 --- /dev/null +++ b/pkgs/by-name/ka/kak-tree-sitter-unwrapped/package.nix @@ -0,0 +1,35 @@ +{ + lib, + rustPlatform, + fetchFromSourcehut, + nix-update-script, + testers, + kak-tree-sitter-unwrapped, +}: + +rustPlatform.buildRustPackage rec { + pname = "kak-tree-sitter-unwrapped"; + version = "1.1.2"; + + src = fetchFromSourcehut { + owner = "~hadronized"; + repo = "kak-tree-sitter"; + rev = "kak-tree-sitter-v${version}"; + hash = "sha256-wBWfSyR8LGtug/mCD0bJ4lbdN3trIA/03AnCxZoEOSA="; + }; + + cargoHash = "sha256-v0DNcWPoHdquOlyPoPLoFulz66yCPR1W1Z3uuTjli5k="; + + passthru = { + updateScript = nix-update-script { }; + tests.version = testers.testVersion { package = kak-tree-sitter-unwrapped; }; + }; + + meta = { + homepage = "https://git.sr.ht/~hadronized/kak-tree-sitter"; + description = "Server that interfaces tree-sitter with kakoune"; + mainProgram = "kak-tree-sitter"; + license = with lib.licenses; [ bsd3 ]; + maintainers = with lib.maintainers; [ lelgenio ]; + }; +} diff --git a/pkgs/by-name/ka/kak-tree-sitter/package.nix b/pkgs/by-name/ka/kak-tree-sitter/package.nix new file mode 100644 index 000000000000..e80edb2f369e --- /dev/null +++ b/pkgs/by-name/ka/kak-tree-sitter/package.nix @@ -0,0 +1,27 @@ +{ + lib, + makeWrapper, + symlinkJoin, + tinycc, + kak-tree-sitter-unwrapped, +}: + +symlinkJoin rec { + pname = lib.replaceStrings [ "-unwrapped" ] [ "" ] kak-tree-sitter-unwrapped.pname; + inherit (kak-tree-sitter-unwrapped) version; + name = "${pname}-${version}"; + + paths = [ kak-tree-sitter-unwrapped ]; + nativeBuildInputs = [ makeWrapper ]; + + # Tree-Sitter grammars are C programs that need to be compiled + # Use tinycc as cc to reduce closure size + postBuild = '' + mkdir -p $out/libexec/tinycc/bin + ln -s ${lib.getExe tinycc} $out/libexec/tinycc/bin/cc + wrapProgram "$out/bin/ktsctl" \ + --suffix PATH : $out/libexec/tinycc/bin + ''; + + inherit (kak-tree-sitter-unwrapped) meta; +}