build-system/tree-sitter: Switch to (json).

* guix/build/tree-sitter-build-system.scm (patch-dependencies,
install): Switch from (guix build json) to (json).

Signed-off-by: Jelle Licht <jlicht@fsfe.org>
Change-Id: I8de71c74475514c932e84303a20f0409419e8527
This commit is contained in:
Nicolas Graves 2025-02-18 00:43:56 +01:00 committed by Andreas Enge
parent 93d4d16375
commit c48019577c
No known key found for this signature in database
GPG key ID: F7D5C9BF765C61E3

View file

@ -18,10 +18,10 @@
(define-module (guix build tree-sitter-build-system)
#:use-module ((guix build node-build-system) #:prefix node:)
#:use-module (guix build json)
#:use-module (guix build utils)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (json)
#:use-module (srfi srfi-1)
#:export (%standard-phases
tree-sitter-build))
@ -47,12 +47,13 @@
"Rewrite dependencies in 'package.json'. We remove all runtime dependencies
and replace development dependencies with tree-sitter grammar node modules."
(define (rewrite package.json)
(node:with-atomic-json-file-replacement
(lambda (pkg-meta-alist)
(map (match-lambda
(("dependencies" @ . _)
'("dependencies" @))
(("devDependencies" @ . _)
`("devDependencies" @
(("dependencies" dependencies ...)
'("dependencies"))
(("devDependencies" dev-dependencies ...)
`("devDependencies"
,@(filter-map (match-lambda
((key . directory)
(let ((node-module
@ -63,12 +64,7 @@ and replace development dependencies with tree-sitter grammar node modules."
`(,key . ,node-module)))))
(alist-delete "node" inputs))))
(other other))
package.json))
(node:with-atomic-json-file-replacement "package.json"
(match-lambda
(('@ . package.json)
(cons '@ (rewrite package.json))))))
pkg-meta-alist))))
;; FIXME: The node build-system's configure phase does not support
;; cross-compiling so we re-define it.
@ -99,7 +95,7 @@ and replace development dependencies with tree-sitter grammar node modules."
(define (compile-language dir)
(with-directory-excursion dir
(let ((lang (assoc-ref (call-with-input-file "src/grammar.json"
read-json)
json->scm)
"name"))
(source-file (lambda (path)
(if (file-exists? path)