(address . guix-patches@gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
* gnu/packages/node.scm (node-semver): New variable.
---
gnu/packages/node.scm | 48 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 47 insertions(+), 1 deletion(-)
Toggle diff (75 lines)
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index fc43fcb04c..2f3fe17334 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -23,10 +24,12 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages node)
- #:use-module ((guix licenses) #:select (expat))
+ #:use-module ((guix licenses) #:select (expat isc))
#:use-module (guix packages)
#:use-module (guix derivations)
#:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system trivial)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
@@ -184,3 +187,46 @@ devices.")
(home-page "https://nodejs.org/")
(license expat)
(properties '((timeout . 3600))))) ; 1 h
+
+(define-public node-semver
+ (package
+ (name "node-semver")
+ (version "6.2.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/npm/node-semver.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0lqb0v7frrdr7yvxy8b2yg6rp1jilninzk76qnx5qnswxnr4gj5m"))))
+ (build-system trivial-build-system)
+ (propagated-inputs
+ `(("node" ,node)))
+ (arguments
+ '(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((source (assoc-ref %build-inputs "source"))
+ (out (assoc-ref %outputs "out"))
+ (semver-js "semver.js")
+ (entry-point (string-append "bin/" semver-js)))
+ (mkdir-p (string-append out "/bin"))
+ (setenv "PATH" (string-append (assoc-ref %build-inputs
+ "node")
+ "/bin:" (getenv "PATH")))
+ (map (lambda (file)
+ (install-file (string-append source "/" file) out))
+ (list semver-js "LICENSE" "package.json" "package-lock.json" "range.bnf"))
+ (install-file (string-append source "/" entry-point)
+ (string-append out "/bin"))
+ (patch-shebang (string-append out "/" entry-point))
+ #t))))
+ (home-page "https://github.com/npm/node-semver")
+ (synopsis "Parses semantic versions strings")
+ (description
+ "node-semver is a JavaScript implementation of the
+@uref{https://semver.org/, SemVer.org} specification.")
+ (license isc)))
--
2.22.0