~ruther/guix-local

6713806436d64e5174f6495e1416cef1f06605ed — Evgenii Klimov 11 months ago 026fb46
gnu: Change tree-sitter-delete-generated-files procedure.

* gnu/packages/tree-sitter.scm (tree-sitter-delete-generated-files):
  Check existance before deleting generated files.

Not every package has all files that we want to delete.  This change
allows us to always apply this procedure at the end of a custom
#:get-cleanup-snippet.  This would be especially important if the upstream
decides to change the structure, which would require us to revisit every
package that doesn't use this procedure.

Change-Id: I0847ccae5053d91e7e56e2c490b51d4396eb5b13
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
1 files changed, 15 insertions(+), 7 deletions(-)

M gnu/packages/tree-sitter.scm
M gnu/packages/tree-sitter.scm => gnu/packages/tree-sitter.scm +15 -7
@@ 45,7 45,8 @@
  #:use-module (guix git-download)
  #:use-module (guix i18n)
  #:use-module (guix packages)
  #:use-module (guix utils))
  #:use-module (guix utils)
  #:use-module (ice-9 exceptions))

(define-public tree-sitter
  (package


@@ 204,15 205,22 @@ This package includes the @command{tree-sitter} command-line tool.")
(define (tree-sitter-delete-generated-files grammar-directories)
  #~(begin
      (use-modules (guix build utils))
      (delete-file "binding.gyp")
      (delete-file-recursively "bindings")
      (define (delete-file-if-exists file)
        ;; Not every package has all files that we want to delete.
        (catch 'system-error
          (lambda () (delete-file-recursively file))
          (lambda args
            (unless (= ENOENT (system-error-errno args))
              (apply throw args)))))
      (delete-file-if-exists "binding.gyp")
      (delete-file-if-exists "bindings")
      (for-each
       (lambda (lang)
         (with-directory-excursion lang
           (delete-file "src/grammar.json")
           (delete-file "src/node-types.json")
           (delete-file "src/parser.c")
           (delete-file-recursively "src/tree_sitter")))
           (delete-file-if-exists "src/grammar.json")
           (delete-file-if-exists "src/node-types.json")
           (delete-file-if-exists "src/parser.c")
           (delete-file-if-exists "src/tree_sitter")))
       '#$grammar-directories)))

(define* (tree-sitter-grammar