From 02f89ac524cef1c982b4292daed07c2af41931a5 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 3 Jun 2022 14:48:15 +0200 Subject: [PATCH] Refactor nix package Introduce an overlay, and use the existing 'tree-sitter' package machinery to extend it with this grammar. Expose the extended 'tree-sitter' as part of the flake packages. --- flake.nix | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/flake.nix b/flake.nix index 31ecee0..9d3cfdd 100644 --- a/flake.nix +++ b/flake.nix @@ -51,9 +51,8 @@ let pkgs = import nixpkgs { inherit system; + overlays = [ self.overlays.default ]; }; - - version = (builtins.fromJSON (builtins.readFile ./package.json)).version; in rec { checks = { @@ -104,14 +103,23 @@ }; packages = { - default = - let mkGrammar = pkgs.callPackage "${nixpkgs}/pkgs/development/tools/parsing/tree-sitter/grammar.nix" { }; - in - mkGrammar { - language = "tiger"; - inherit version; - source = ./.; - }; + default = packages.tree-sitter-tiger; + + inherit (pkgs.tree-sitter.passthru.builtGrammars) tree-sitter-tiger; + + inherit (pkgs) tree-sitter; }; - }); + }) // { + overlays = { + default = final: prev: { + tree-sitter = prev.tree-sitter.override { + extraGrammars = { + tree-sitter-tiger = { + src = ./.; + }; + }; + }; + }; + }; + }; }