gnu: Add node-serialport-bindings.

* gnu/packages/node-xyz.scm (node-serialport-bindings): New variable.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
Philip McGrath 2022-01-08 03:42:22 -05:00 committed by Liliana Marie Prikler
parent b5ffff233a
commit d85b3b59a6
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87

View file

@ -1076,3 +1076,57 @@ (define-public node-serialport-parser-readline
Parsers are used to take raw binary data and transform them into usable
messages. This package provides @code{Readline}, a parser that emits data
after a (configurable) newline delimiter is received.")))
(define-public node-serialport-bindings
(package
(inherit node-serialport-binding-abstract)
(name "node-serialport-bindings")
(version "9.2.7")
(native-inputs
(list python))
(inputs
(list node-nan node-bindings node-serialport-binding-abstract
node-serialport-parser-readline node-debug))
(arguments
`(#:modules
((guix build node-build-system)
(srfi srfi-1)
(ice-9 match)
(guix build utils))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda args
(chdir "packages/bindings")))
(add-after 'patch-dependencies 'delete-dependencies
(lambda args
(delete-dependencies `("prebuild-install"
;; devDependencies
"@serialport/binding-mock"
"node-abi"))))
(add-after 'chdir 'avoid-prebuild-install
(lambda args
(with-atomic-json-file-replacement "package.json"
(match-lambda
(('@ . pkg-meta-alist)
(cons '@ (map (match-lambda
(("scripts" @ . scripts-alist)
`("scripts" @ ,@(filter (match-lambda
(("install" . _)
#f)
(_
#t))
scripts-alist)))
(other
other))
pkg-meta-alist))))))))
#:tests? #f))
(synopsis "Abstract base class for Node SerialPort bindings")
(description "Node SerialPort is a modular suite of Node.js packages for
accessing serial ports. The Guix package @code{node-serialport} provides the
recommended high-level interface.
This package provides the @code{Binding} class, which uses a native addon to
talk to the underlying system. You never have to use @code{Binding} objects
directly. There is also a @code{MockBinding} available (but not yet packaged
for Guix) to assist with testing.")))