andreas pushed a commit to branch master
in repository guix.
commit c48019577cc704ef5a85e452a3e79145138a022c
Author: Nicolas Graves <[email protected]>
AuthorDate: Tue Feb 18 00:43:56 2025 +0100
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 <[email protected]>
Change-Id: I8de71c74475514c932e84303a20f0409419e8527
---
guix/build/tree-sitter-build-system.scm | 44 +++++++++++++++------------------
1 file changed, 20 insertions(+), 24 deletions(-)
diff --git a/guix/build/tree-sitter-build-system.scm
b/guix/build/tree-sitter-build-system.scm
index 4106728bdf..1fe2601dd7 100644
--- a/guix/build/tree-sitter-build-system.scm
+++ b/guix/build/tree-sitter-build-system.scm
@@ -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,28 +47,24 @@
"Rewrite dependencies in 'package.json'. We remove all runtime dependencies
and replace development dependencies with tree-sitter grammar node modules."
- (define (rewrite package.json)
- (map (match-lambda
- (("dependencies" @ . _)
- '("dependencies" @))
- (("devDependencies" @ . _)
- `("devDependencies" @
- ,@(filter-map (match-lambda
- ((key . directory)
- (let ((node-module
- (string-append directory
- "/lib/node_modules/"
- key)))
- (and (directory-exists? node-module)
- `(,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))))))
+ (node:with-atomic-json-file-replacement
+ (lambda (pkg-meta-alist)
+ (map (match-lambda
+ (("dependencies" dependencies ...)
+ '("dependencies"))
+ (("devDependencies" dev-dependencies ...)
+ `("devDependencies"
+ ,@(filter-map (match-lambda
+ ((key . directory)
+ (let ((node-module
+ (string-append directory
+ "/lib/node_modules/"
+ key)))
+ (and (directory-exists? node-module)
+ `(,key . ,node-module)))))
+ (alist-delete "node" inputs))))
+ (other other))
+ 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)